summaryrefslogtreecommitdiffstats
path: root/gfx/angle/checkout/src/compiler/translator/tree_util
diff options
context:
space:
mode:
Diffstat (limited to 'gfx/angle/checkout/src/compiler/translator/tree_util')
-rw-r--r--gfx/angle/checkout/src/compiler/translator/tree_util/AsNode.h212
-rw-r--r--gfx/angle/checkout/src/compiler/translator/tree_util/BuiltIn.h18
-rw-r--r--gfx/angle/checkout/src/compiler/translator/tree_util/BuiltIn_ESSL_autogen.h4177
-rw-r--r--gfx/angle/checkout/src/compiler/translator/tree_util/BuiltIn_complete_autogen.h5008
-rw-r--r--gfx/angle/checkout/src/compiler/translator/tree_util/DriverUniform.cpp435
-rw-r--r--gfx/angle/checkout/src/compiler/translator/tree_util/DriverUniform.h110
-rw-r--r--gfx/angle/checkout/src/compiler/translator/tree_util/FindFunction.cpp32
-rw-r--r--gfx/angle/checkout/src/compiler/translator/tree_util/FindFunction.h21
-rw-r--r--gfx/angle/checkout/src/compiler/translator/tree_util/FindMain.cpp54
-rw-r--r--gfx/angle/checkout/src/compiler/translator/tree_util/FindMain.h24
-rw-r--r--gfx/angle/checkout/src/compiler/translator/tree_util/FindPreciseNodes.cpp703
-rw-r--r--gfx/angle/checkout/src/compiler/translator/tree_util/FindPreciseNodes.h25
-rw-r--r--gfx/angle/checkout/src/compiler/translator/tree_util/FindSymbolNode.cpp53
-rw-r--r--gfx/angle/checkout/src/compiler/translator/tree_util/FindSymbolNode.h23
-rw-r--r--gfx/angle/checkout/src/compiler/translator/tree_util/IntermNodePatternMatcher.cpp213
-rw-r--r--gfx/angle/checkout/src/compiler/translator/tree_util/IntermNodePatternMatcher.h81
-rw-r--r--gfx/angle/checkout/src/compiler/translator/tree_util/IntermNode_util.cpp436
-rw-r--r--gfx/angle/checkout/src/compiler/translator/tree_util/IntermNode_util.h128
-rw-r--r--gfx/angle/checkout/src/compiler/translator/tree_util/IntermRebuild.cpp1046
-rw-r--r--gfx/angle/checkout/src/compiler/translator/tree_util/IntermRebuild.h328
-rw-r--r--gfx/angle/checkout/src/compiler/translator/tree_util/IntermTraverse.cpp708
-rw-r--r--gfx/angle/checkout/src/compiler/translator/tree_util/IntermTraverse.h379
-rw-r--r--gfx/angle/checkout/src/compiler/translator/tree_util/NodeSearch.h56
-rw-r--r--gfx/angle/checkout/src/compiler/translator/tree_util/NodeType.h155
-rw-r--r--gfx/angle/checkout/src/compiler/translator/tree_util/ReplaceArrayOfMatrixVarying.cpp175
-rw-r--r--gfx/angle/checkout/src/compiler/translator/tree_util/ReplaceArrayOfMatrixVarying.h33
-rw-r--r--gfx/angle/checkout/src/compiler/translator/tree_util/ReplaceClipCullDistanceVariable.cpp591
-rw-r--r--gfx/angle/checkout/src/compiler/translator/tree_util/ReplaceClipCullDistanceVariable.h43
-rw-r--r--gfx/angle/checkout/src/compiler/translator/tree_util/ReplaceShadowingVariables.cpp142
-rw-r--r--gfx/angle/checkout/src/compiler/translator/tree_util/ReplaceShadowingVariables.h26
-rw-r--r--gfx/angle/checkout/src/compiler/translator/tree_util/ReplaceVariable.cpp145
-rw-r--r--gfx/angle/checkout/src/compiler/translator/tree_util/ReplaceVariable.h48
-rw-r--r--gfx/angle/checkout/src/compiler/translator/tree_util/RewriteSampleMaskVariable.cpp198
-rw-r--r--gfx/angle/checkout/src/compiler/translator/tree_util/RewriteSampleMaskVariable.h38
-rw-r--r--gfx/angle/checkout/src/compiler/translator/tree_util/RunAtTheBeginningOfShader.cpp35
-rw-r--r--gfx/angle/checkout/src/compiler/translator/tree_util/RunAtTheBeginningOfShader.h27
-rw-r--r--gfx/angle/checkout/src/compiler/translator/tree_util/RunAtTheEndOfShader.cpp129
-rw-r--r--gfx/angle/checkout/src/compiler/translator/tree_util/RunAtTheEndOfShader.h29
-rw-r--r--gfx/angle/checkout/src/compiler/translator/tree_util/SpecializationConstant.cpp122
-rw-r--r--gfx/angle/checkout/src/compiler/translator/tree_util/SpecializationConstant.h55
-rw-r--r--gfx/angle/checkout/src/compiler/translator/tree_util/Visit.h22
41 files changed, 16283 insertions, 0 deletions
diff --git a/gfx/angle/checkout/src/compiler/translator/tree_util/AsNode.h b/gfx/angle/checkout/src/compiler/translator/tree_util/AsNode.h
new file mode 100644
index 0000000000..1c6de182d9
--- /dev/null
+++ b/gfx/angle/checkout/src/compiler/translator/tree_util/AsNode.h
@@ -0,0 +1,212 @@
+//
+// Copyright 2020 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.
+//
+
+#ifndef COMPILER_TRANSLATOR_TREEUTIL_INTERMASNODE_H_
+#define COMPILER_TRANSLATOR_TREEUTIL_INTERMASNODE_H_
+
+#include "common/angleutils.h"
+#include "compiler/translator/IntermNode.h"
+
+#include <utility>
+
+namespace sh
+{
+
+namespace priv
+{
+
+template <typename T>
+struct AsNode
+{};
+
+template <>
+struct AsNode<TIntermNode>
+{
+ static ANGLE_INLINE TIntermNode *exec(TIntermNode *node) { return node; }
+};
+
+template <>
+struct AsNode<TIntermTyped>
+{
+ static ANGLE_INLINE TIntermTyped *exec(TIntermNode *node)
+ {
+ return node ? node->getAsTyped() : nullptr;
+ }
+};
+
+template <>
+struct AsNode<TIntermSymbol>
+{
+ static ANGLE_INLINE TIntermSymbol *exec(TIntermNode *node)
+ {
+ return node ? node->getAsSymbolNode() : nullptr;
+ }
+};
+
+template <>
+struct AsNode<TIntermConstantUnion>
+{
+ static ANGLE_INLINE TIntermConstantUnion *exec(TIntermNode *node)
+ {
+ return node ? node->getAsConstantUnion() : nullptr;
+ }
+};
+
+template <>
+struct AsNode<TIntermFunctionPrototype>
+{
+ static ANGLE_INLINE TIntermFunctionPrototype *exec(TIntermNode *node)
+ {
+ return node ? node->getAsFunctionPrototypeNode() : nullptr;
+ }
+};
+
+template <>
+struct AsNode<TIntermPreprocessorDirective>
+{
+ static ANGLE_INLINE TIntermPreprocessorDirective *exec(TIntermNode *node)
+ {
+ return node ? node->getAsPreprocessorDirective() : nullptr;
+ }
+};
+
+template <>
+struct AsNode<TIntermSwizzle>
+{
+ static ANGLE_INLINE TIntermSwizzle *exec(TIntermNode *node)
+ {
+ return node ? node->getAsSwizzleNode() : nullptr;
+ }
+};
+
+template <>
+struct AsNode<TIntermBinary>
+{
+ static ANGLE_INLINE TIntermBinary *exec(TIntermNode *node)
+ {
+ return node ? node->getAsBinaryNode() : nullptr;
+ }
+};
+
+template <>
+struct AsNode<TIntermUnary>
+{
+ static ANGLE_INLINE TIntermUnary *exec(TIntermNode *node)
+ {
+ return node ? node->getAsUnaryNode() : nullptr;
+ }
+};
+
+template <>
+struct AsNode<TIntermTernary>
+{
+ static ANGLE_INLINE TIntermTernary *exec(TIntermNode *node)
+ {
+ return node ? node->getAsTernaryNode() : nullptr;
+ }
+};
+
+template <>
+struct AsNode<TIntermIfElse>
+{
+ static ANGLE_INLINE TIntermIfElse *exec(TIntermNode *node)
+ {
+ return node ? node->getAsIfElseNode() : nullptr;
+ }
+};
+
+template <>
+struct AsNode<TIntermSwitch>
+{
+ static ANGLE_INLINE TIntermSwitch *exec(TIntermNode *node)
+ {
+ return node ? node->getAsSwitchNode() : nullptr;
+ }
+};
+
+template <>
+struct AsNode<TIntermCase>
+{
+ static ANGLE_INLINE TIntermCase *exec(TIntermNode *node)
+ {
+ return node ? node->getAsCaseNode() : nullptr;
+ }
+};
+
+template <>
+struct AsNode<TIntermFunctionDefinition>
+{
+ static ANGLE_INLINE TIntermFunctionDefinition *exec(TIntermNode *node)
+ {
+ return node ? node->getAsFunctionDefinition() : nullptr;
+ }
+};
+
+template <>
+struct AsNode<TIntermAggregate>
+{
+ static ANGLE_INLINE TIntermAggregate *exec(TIntermNode *node)
+ {
+ return node ? node->getAsAggregate() : nullptr;
+ }
+};
+
+template <>
+struct AsNode<TIntermBlock>
+{
+ static ANGLE_INLINE TIntermBlock *exec(TIntermNode *node)
+ {
+ return node ? node->getAsBlock() : nullptr;
+ }
+};
+
+template <>
+struct AsNode<TIntermGlobalQualifierDeclaration>
+{
+ static ANGLE_INLINE TIntermGlobalQualifierDeclaration *exec(TIntermNode *node)
+ {
+ return node ? node->getAsGlobalQualifierDeclarationNode() : nullptr;
+ }
+};
+
+template <>
+struct AsNode<TIntermDeclaration>
+{
+ static ANGLE_INLINE TIntermDeclaration *exec(TIntermNode *node)
+ {
+ return node ? node->getAsDeclarationNode() : nullptr;
+ }
+};
+
+template <>
+struct AsNode<TIntermLoop>
+{
+ static ANGLE_INLINE TIntermLoop *exec(TIntermNode *node)
+ {
+ return node ? node->getAsLoopNode() : nullptr;
+ }
+};
+
+template <>
+struct AsNode<TIntermBranch>
+{
+ static ANGLE_INLINE TIntermBranch *exec(TIntermNode *node)
+ {
+ return node ? node->getAsBranchNode() : nullptr;
+ }
+};
+
+} // namespace priv
+
+template <typename T>
+ANGLE_INLINE T *asNode(TIntermNode *node)
+{
+ return priv::AsNode<T>::exec(node);
+}
+
+} // namespace sh
+
+#endif // COMPILER_TRANSLATOR_TREEUTIL_INTERMASNODE_H_
diff --git a/gfx/angle/checkout/src/compiler/translator/tree_util/BuiltIn.h b/gfx/angle/checkout/src/compiler/translator/tree_util/BuiltIn.h
new file mode 100644
index 0000000000..22c33f9fc0
--- /dev/null
+++ b/gfx/angle/checkout/src/compiler/translator/tree_util/BuiltIn.h
@@ -0,0 +1,18 @@
+// 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.
+//
+// BuiltIn.h:
+// Chooses BuiltIn_complete_autogen.h or BuiltIn_ESSL_autogen.h
+// depending on whether platform is android
+
+#ifndef COMPILER_TRANSLATOR_TREEUTIL_BUILTIN_H_
+#define COMPILER_TRANSLATOR_TREEUTIL_BUILTIN_H_
+
+#if defined(ANDROID)
+# include "BuiltIn_ESSL_autogen.h"
+#else
+# include "BuiltIn_complete_autogen.h"
+#endif
+
+#endif // COMPILER_TRANSLATOR_TREEUTIL_BUILTIN_H_
diff --git a/gfx/angle/checkout/src/compiler/translator/tree_util/BuiltIn_ESSL_autogen.h b/gfx/angle/checkout/src/compiler/translator/tree_util/BuiltIn_ESSL_autogen.h
new file mode 100644
index 0000000000..5380d82c68
--- /dev/null
+++ b/gfx/angle/checkout/src/compiler/translator/tree_util/BuiltIn_ESSL_autogen.h
@@ -0,0 +1,4177 @@
+// GENERATED FILE - DO NOT EDIT.
+// Generated by gen_builtin_symbols.py using data from builtin_variables.json and
+// builtin_function_declarations.txt.
+//
+// Copyright 2020 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.
+//
+// BuiltIn_ESSL_autogen.h:
+// Compile-time initialized built-ins.
+
+#ifndef COMPILER_TRANSLATOR_TREEUTIL_BUILTIN_AUTOGEN_H_
+#define COMPILER_TRANSLATOR_TREEUTIL_BUILTIN_AUTOGEN_H_
+
+#include "compiler/translator/SymbolUniqueId.h"
+
+namespace sh
+{
+
+class TVariable;
+
+class BuiltInId
+{
+ public:
+ static constexpr const TSymbolUniqueId radians_Float1 = TSymbolUniqueId(3086);
+ static constexpr const TSymbolUniqueId pt00B = TSymbolUniqueId(3087);
+ static constexpr const TSymbolUniqueId radians_Float2 = TSymbolUniqueId(3088);
+ static constexpr const TSymbolUniqueId pt10B = TSymbolUniqueId(3089);
+ static constexpr const TSymbolUniqueId radians_Float3 = TSymbolUniqueId(3090);
+ static constexpr const TSymbolUniqueId pt20B = TSymbolUniqueId(3091);
+ static constexpr const TSymbolUniqueId radians_Float4 = TSymbolUniqueId(3092);
+ static constexpr const TSymbolUniqueId pt30B = TSymbolUniqueId(3093);
+ static constexpr const TSymbolUniqueId degrees_Float1 = TSymbolUniqueId(3094);
+ static constexpr const TSymbolUniqueId degrees_Float2 = TSymbolUniqueId(3095);
+ static constexpr const TSymbolUniqueId degrees_Float3 = TSymbolUniqueId(3096);
+ static constexpr const TSymbolUniqueId degrees_Float4 = TSymbolUniqueId(3097);
+ static constexpr const TSymbolUniqueId sin_Float1 = TSymbolUniqueId(3098);
+ static constexpr const TSymbolUniqueId sin_Float2 = TSymbolUniqueId(3099);
+ static constexpr const TSymbolUniqueId sin_Float3 = TSymbolUniqueId(3100);
+ static constexpr const TSymbolUniqueId sin_Float4 = TSymbolUniqueId(3101);
+ static constexpr const TSymbolUniqueId cos_Float1 = TSymbolUniqueId(3102);
+ static constexpr const TSymbolUniqueId cos_Float2 = TSymbolUniqueId(3103);
+ static constexpr const TSymbolUniqueId cos_Float3 = TSymbolUniqueId(3104);
+ static constexpr const TSymbolUniqueId cos_Float4 = TSymbolUniqueId(3105);
+ static constexpr const TSymbolUniqueId tan_Float1 = TSymbolUniqueId(3106);
+ static constexpr const TSymbolUniqueId tan_Float2 = TSymbolUniqueId(3107);
+ static constexpr const TSymbolUniqueId tan_Float3 = TSymbolUniqueId(3108);
+ static constexpr const TSymbolUniqueId tan_Float4 = TSymbolUniqueId(3109);
+ static constexpr const TSymbolUniqueId asin_Float1 = TSymbolUniqueId(3110);
+ static constexpr const TSymbolUniqueId asin_Float2 = TSymbolUniqueId(3111);
+ static constexpr const TSymbolUniqueId asin_Float3 = TSymbolUniqueId(3112);
+ static constexpr const TSymbolUniqueId asin_Float4 = TSymbolUniqueId(3113);
+ static constexpr const TSymbolUniqueId acos_Float1 = TSymbolUniqueId(3114);
+ static constexpr const TSymbolUniqueId acos_Float2 = TSymbolUniqueId(3115);
+ static constexpr const TSymbolUniqueId acos_Float3 = TSymbolUniqueId(3116);
+ static constexpr const TSymbolUniqueId acos_Float4 = TSymbolUniqueId(3117);
+ static constexpr const TSymbolUniqueId atan_Float1_Float1 = TSymbolUniqueId(3118);
+ static constexpr const TSymbolUniqueId atan_Float2_Float2 = TSymbolUniqueId(3119);
+ static constexpr const TSymbolUniqueId atan_Float3_Float3 = TSymbolUniqueId(3120);
+ static constexpr const TSymbolUniqueId atan_Float4_Float4 = TSymbolUniqueId(3121);
+ static constexpr const TSymbolUniqueId atan_Float1 = TSymbolUniqueId(3122);
+ static constexpr const TSymbolUniqueId atan_Float2 = TSymbolUniqueId(3123);
+ static constexpr const TSymbolUniqueId atan_Float3 = TSymbolUniqueId(3124);
+ static constexpr const TSymbolUniqueId atan_Float4 = TSymbolUniqueId(3125);
+ static constexpr const TSymbolUniqueId sinh_Float1 = TSymbolUniqueId(3126);
+ static constexpr const TSymbolUniqueId sinh_Float2 = TSymbolUniqueId(3127);
+ static constexpr const TSymbolUniqueId sinh_Float3 = TSymbolUniqueId(3128);
+ static constexpr const TSymbolUniqueId sinh_Float4 = TSymbolUniqueId(3129);
+ static constexpr const TSymbolUniqueId cosh_Float1 = TSymbolUniqueId(3130);
+ static constexpr const TSymbolUniqueId cosh_Float2 = TSymbolUniqueId(3131);
+ static constexpr const TSymbolUniqueId cosh_Float3 = TSymbolUniqueId(3132);
+ static constexpr const TSymbolUniqueId cosh_Float4 = TSymbolUniqueId(3133);
+ static constexpr const TSymbolUniqueId tanh_Float1 = TSymbolUniqueId(3134);
+ static constexpr const TSymbolUniqueId tanh_Float2 = TSymbolUniqueId(3135);
+ static constexpr const TSymbolUniqueId tanh_Float3 = TSymbolUniqueId(3136);
+ static constexpr const TSymbolUniqueId tanh_Float4 = TSymbolUniqueId(3137);
+ static constexpr const TSymbolUniqueId asinh_Float1 = TSymbolUniqueId(3138);
+ static constexpr const TSymbolUniqueId asinh_Float2 = TSymbolUniqueId(3139);
+ static constexpr const TSymbolUniqueId asinh_Float3 = TSymbolUniqueId(3140);
+ static constexpr const TSymbolUniqueId asinh_Float4 = TSymbolUniqueId(3141);
+ static constexpr const TSymbolUniqueId acosh_Float1 = TSymbolUniqueId(3142);
+ static constexpr const TSymbolUniqueId acosh_Float2 = TSymbolUniqueId(3143);
+ static constexpr const TSymbolUniqueId acosh_Float3 = TSymbolUniqueId(3144);
+ static constexpr const TSymbolUniqueId acosh_Float4 = TSymbolUniqueId(3145);
+ static constexpr const TSymbolUniqueId atanh_Float1 = TSymbolUniqueId(3146);
+ static constexpr const TSymbolUniqueId atanh_Float2 = TSymbolUniqueId(3147);
+ static constexpr const TSymbolUniqueId atanh_Float3 = TSymbolUniqueId(3148);
+ static constexpr const TSymbolUniqueId atanh_Float4 = TSymbolUniqueId(3149);
+ static constexpr const TSymbolUniqueId pow_Float1_Float1 = TSymbolUniqueId(3150);
+ static constexpr const TSymbolUniqueId pow_Float2_Float2 = TSymbolUniqueId(3151);
+ static constexpr const TSymbolUniqueId pow_Float3_Float3 = TSymbolUniqueId(3152);
+ static constexpr const TSymbolUniqueId pow_Float4_Float4 = TSymbolUniqueId(3153);
+ static constexpr const TSymbolUniqueId exp_Float1 = TSymbolUniqueId(3154);
+ static constexpr const TSymbolUniqueId exp_Float2 = TSymbolUniqueId(3155);
+ static constexpr const TSymbolUniqueId exp_Float3 = TSymbolUniqueId(3156);
+ static constexpr const TSymbolUniqueId exp_Float4 = TSymbolUniqueId(3157);
+ static constexpr const TSymbolUniqueId log_Float1 = TSymbolUniqueId(3158);
+ static constexpr const TSymbolUniqueId log_Float2 = TSymbolUniqueId(3159);
+ static constexpr const TSymbolUniqueId log_Float3 = TSymbolUniqueId(3160);
+ static constexpr const TSymbolUniqueId log_Float4 = TSymbolUniqueId(3161);
+ static constexpr const TSymbolUniqueId exp2_Float1 = TSymbolUniqueId(3162);
+ static constexpr const TSymbolUniqueId exp2_Float2 = TSymbolUniqueId(3163);
+ static constexpr const TSymbolUniqueId exp2_Float3 = TSymbolUniqueId(3164);
+ static constexpr const TSymbolUniqueId exp2_Float4 = TSymbolUniqueId(3165);
+ static constexpr const TSymbolUniqueId log2_Float1 = TSymbolUniqueId(3166);
+ static constexpr const TSymbolUniqueId log2_Float2 = TSymbolUniqueId(3167);
+ static constexpr const TSymbolUniqueId log2_Float3 = TSymbolUniqueId(3168);
+ static constexpr const TSymbolUniqueId log2_Float4 = TSymbolUniqueId(3169);
+ static constexpr const TSymbolUniqueId sqrt_Float1 = TSymbolUniqueId(3170);
+ static constexpr const TSymbolUniqueId sqrt_Float2 = TSymbolUniqueId(3171);
+ static constexpr const TSymbolUniqueId sqrt_Float3 = TSymbolUniqueId(3172);
+ static constexpr const TSymbolUniqueId sqrt_Float4 = TSymbolUniqueId(3173);
+ static constexpr const TSymbolUniqueId inversesqrt_Float1 = TSymbolUniqueId(3174);
+ static constexpr const TSymbolUniqueId inversesqrt_Float2 = TSymbolUniqueId(3175);
+ static constexpr const TSymbolUniqueId inversesqrt_Float3 = TSymbolUniqueId(3176);
+ static constexpr const TSymbolUniqueId inversesqrt_Float4 = TSymbolUniqueId(3177);
+ static constexpr const TSymbolUniqueId abs_Float1 = TSymbolUniqueId(3178);
+ static constexpr const TSymbolUniqueId abs_Float2 = TSymbolUniqueId(3179);
+ static constexpr const TSymbolUniqueId abs_Float3 = TSymbolUniqueId(3180);
+ static constexpr const TSymbolUniqueId abs_Float4 = TSymbolUniqueId(3181);
+ static constexpr const TSymbolUniqueId abs_Int1 = TSymbolUniqueId(3182);
+ static constexpr const TSymbolUniqueId pt00D = TSymbolUniqueId(3183);
+ static constexpr const TSymbolUniqueId abs_Int2 = TSymbolUniqueId(3184);
+ static constexpr const TSymbolUniqueId pt10D = TSymbolUniqueId(3185);
+ static constexpr const TSymbolUniqueId abs_Int3 = TSymbolUniqueId(3186);
+ static constexpr const TSymbolUniqueId pt20D = TSymbolUniqueId(3187);
+ static constexpr const TSymbolUniqueId abs_Int4 = TSymbolUniqueId(3188);
+ static constexpr const TSymbolUniqueId pt30D = TSymbolUniqueId(3189);
+ static constexpr const TSymbolUniqueId sign_Float1 = TSymbolUniqueId(3190);
+ static constexpr const TSymbolUniqueId sign_Float2 = TSymbolUniqueId(3191);
+ static constexpr const TSymbolUniqueId sign_Float3 = TSymbolUniqueId(3192);
+ static constexpr const TSymbolUniqueId sign_Float4 = TSymbolUniqueId(3193);
+ static constexpr const TSymbolUniqueId sign_Int1 = TSymbolUniqueId(3194);
+ static constexpr const TSymbolUniqueId sign_Int2 = TSymbolUniqueId(3195);
+ static constexpr const TSymbolUniqueId sign_Int3 = TSymbolUniqueId(3196);
+ static constexpr const TSymbolUniqueId sign_Int4 = TSymbolUniqueId(3197);
+ static constexpr const TSymbolUniqueId floor_Float1 = TSymbolUniqueId(3198);
+ static constexpr const TSymbolUniqueId floor_Float2 = TSymbolUniqueId(3199);
+ static constexpr const TSymbolUniqueId floor_Float3 = TSymbolUniqueId(3200);
+ static constexpr const TSymbolUniqueId floor_Float4 = TSymbolUniqueId(3201);
+ static constexpr const TSymbolUniqueId trunc_Float1 = TSymbolUniqueId(3202);
+ static constexpr const TSymbolUniqueId trunc_Float2 = TSymbolUniqueId(3203);
+ static constexpr const TSymbolUniqueId trunc_Float3 = TSymbolUniqueId(3204);
+ static constexpr const TSymbolUniqueId trunc_Float4 = TSymbolUniqueId(3205);
+ static constexpr const TSymbolUniqueId round_Float1 = TSymbolUniqueId(3206);
+ static constexpr const TSymbolUniqueId round_Float2 = TSymbolUniqueId(3207);
+ static constexpr const TSymbolUniqueId round_Float3 = TSymbolUniqueId(3208);
+ static constexpr const TSymbolUniqueId round_Float4 = TSymbolUniqueId(3209);
+ static constexpr const TSymbolUniqueId roundEven_Float1 = TSymbolUniqueId(3210);
+ static constexpr const TSymbolUniqueId roundEven_Float2 = TSymbolUniqueId(3211);
+ static constexpr const TSymbolUniqueId roundEven_Float3 = TSymbolUniqueId(3212);
+ static constexpr const TSymbolUniqueId roundEven_Float4 = TSymbolUniqueId(3213);
+ static constexpr const TSymbolUniqueId ceil_Float1 = TSymbolUniqueId(3214);
+ static constexpr const TSymbolUniqueId ceil_Float2 = TSymbolUniqueId(3215);
+ static constexpr const TSymbolUniqueId ceil_Float3 = TSymbolUniqueId(3216);
+ static constexpr const TSymbolUniqueId ceil_Float4 = TSymbolUniqueId(3217);
+ static constexpr const TSymbolUniqueId fract_Float1 = TSymbolUniqueId(3218);
+ static constexpr const TSymbolUniqueId fract_Float2 = TSymbolUniqueId(3219);
+ static constexpr const TSymbolUniqueId fract_Float3 = TSymbolUniqueId(3220);
+ static constexpr const TSymbolUniqueId fract_Float4 = TSymbolUniqueId(3221);
+ static constexpr const TSymbolUniqueId mod_Float1_Float1 = TSymbolUniqueId(3222);
+ static constexpr const TSymbolUniqueId mod_Float2_Float1 = TSymbolUniqueId(3223);
+ static constexpr const TSymbolUniqueId mod_Float3_Float1 = TSymbolUniqueId(3224);
+ static constexpr const TSymbolUniqueId mod_Float4_Float1 = TSymbolUniqueId(3225);
+ static constexpr const TSymbolUniqueId mod_Float2_Float2 = TSymbolUniqueId(3226);
+ static constexpr const TSymbolUniqueId mod_Float3_Float3 = TSymbolUniqueId(3227);
+ static constexpr const TSymbolUniqueId mod_Float4_Float4 = TSymbolUniqueId(3228);
+ static constexpr const TSymbolUniqueId min_Float1_Float1 = TSymbolUniqueId(3229);
+ static constexpr const TSymbolUniqueId min_Float2_Float1 = TSymbolUniqueId(3230);
+ static constexpr const TSymbolUniqueId min_Float3_Float1 = TSymbolUniqueId(3231);
+ static constexpr const TSymbolUniqueId min_Float4_Float1 = TSymbolUniqueId(3232);
+ static constexpr const TSymbolUniqueId min_Float2_Float2 = TSymbolUniqueId(3233);
+ static constexpr const TSymbolUniqueId min_Float3_Float3 = TSymbolUniqueId(3234);
+ static constexpr const TSymbolUniqueId min_Float4_Float4 = TSymbolUniqueId(3235);
+ static constexpr const TSymbolUniqueId min_Int1_Int1 = TSymbolUniqueId(3236);
+ static constexpr const TSymbolUniqueId min_Int2_Int2 = TSymbolUniqueId(3237);
+ static constexpr const TSymbolUniqueId min_Int3_Int3 = TSymbolUniqueId(3238);
+ static constexpr const TSymbolUniqueId min_Int4_Int4 = TSymbolUniqueId(3239);
+ static constexpr const TSymbolUniqueId min_Int2_Int1 = TSymbolUniqueId(3240);
+ static constexpr const TSymbolUniqueId min_Int3_Int1 = TSymbolUniqueId(3241);
+ static constexpr const TSymbolUniqueId min_Int4_Int1 = TSymbolUniqueId(3242);
+ static constexpr const TSymbolUniqueId min_UInt1_UInt1 = TSymbolUniqueId(3243);
+ static constexpr const TSymbolUniqueId pt00E = TSymbolUniqueId(3244);
+ static constexpr const TSymbolUniqueId min_UInt2_UInt2 = TSymbolUniqueId(3245);
+ static constexpr const TSymbolUniqueId pt10E = TSymbolUniqueId(3246);
+ static constexpr const TSymbolUniqueId min_UInt3_UInt3 = TSymbolUniqueId(3247);
+ static constexpr const TSymbolUniqueId pt20E = TSymbolUniqueId(3248);
+ static constexpr const TSymbolUniqueId min_UInt4_UInt4 = TSymbolUniqueId(3249);
+ static constexpr const TSymbolUniqueId pt30E = TSymbolUniqueId(3250);
+ static constexpr const TSymbolUniqueId min_UInt2_UInt1 = TSymbolUniqueId(3251);
+ static constexpr const TSymbolUniqueId min_UInt3_UInt1 = TSymbolUniqueId(3252);
+ static constexpr const TSymbolUniqueId min_UInt4_UInt1 = TSymbolUniqueId(3253);
+ static constexpr const TSymbolUniqueId max_Float1_Float1 = TSymbolUniqueId(3254);
+ static constexpr const TSymbolUniqueId max_Float2_Float1 = TSymbolUniqueId(3255);
+ static constexpr const TSymbolUniqueId max_Float3_Float1 = TSymbolUniqueId(3256);
+ static constexpr const TSymbolUniqueId max_Float4_Float1 = TSymbolUniqueId(3257);
+ static constexpr const TSymbolUniqueId max_Float2_Float2 = TSymbolUniqueId(3258);
+ static constexpr const TSymbolUniqueId max_Float3_Float3 = TSymbolUniqueId(3259);
+ static constexpr const TSymbolUniqueId max_Float4_Float4 = TSymbolUniqueId(3260);
+ static constexpr const TSymbolUniqueId max_Int1_Int1 = TSymbolUniqueId(3261);
+ static constexpr const TSymbolUniqueId max_Int2_Int2 = TSymbolUniqueId(3262);
+ static constexpr const TSymbolUniqueId max_Int3_Int3 = TSymbolUniqueId(3263);
+ static constexpr const TSymbolUniqueId max_Int4_Int4 = TSymbolUniqueId(3264);
+ static constexpr const TSymbolUniqueId max_Int2_Int1 = TSymbolUniqueId(3265);
+ static constexpr const TSymbolUniqueId max_Int3_Int1 = TSymbolUniqueId(3266);
+ static constexpr const TSymbolUniqueId max_Int4_Int1 = TSymbolUniqueId(3267);
+ static constexpr const TSymbolUniqueId max_UInt1_UInt1 = TSymbolUniqueId(3268);
+ static constexpr const TSymbolUniqueId max_UInt2_UInt2 = TSymbolUniqueId(3269);
+ static constexpr const TSymbolUniqueId max_UInt3_UInt3 = TSymbolUniqueId(3270);
+ static constexpr const TSymbolUniqueId max_UInt4_UInt4 = TSymbolUniqueId(3271);
+ static constexpr const TSymbolUniqueId max_UInt2_UInt1 = TSymbolUniqueId(3272);
+ static constexpr const TSymbolUniqueId max_UInt3_UInt1 = TSymbolUniqueId(3273);
+ static constexpr const TSymbolUniqueId max_UInt4_UInt1 = TSymbolUniqueId(3274);
+ static constexpr const TSymbolUniqueId clamp_Float1_Float1_Float1 = TSymbolUniqueId(3275);
+ static constexpr const TSymbolUniqueId clamp_Float2_Float1_Float1 = TSymbolUniqueId(3276);
+ static constexpr const TSymbolUniqueId clamp_Float3_Float1_Float1 = TSymbolUniqueId(3277);
+ static constexpr const TSymbolUniqueId clamp_Float4_Float1_Float1 = TSymbolUniqueId(3278);
+ static constexpr const TSymbolUniqueId clamp_Float2_Float2_Float2 = TSymbolUniqueId(3279);
+ static constexpr const TSymbolUniqueId clamp_Float3_Float3_Float3 = TSymbolUniqueId(3280);
+ static constexpr const TSymbolUniqueId clamp_Float4_Float4_Float4 = TSymbolUniqueId(3281);
+ static constexpr const TSymbolUniqueId clamp_Int1_Int1_Int1 = TSymbolUniqueId(3282);
+ static constexpr const TSymbolUniqueId clamp_Int2_Int1_Int1 = TSymbolUniqueId(3283);
+ static constexpr const TSymbolUniqueId clamp_Int3_Int1_Int1 = TSymbolUniqueId(3284);
+ static constexpr const TSymbolUniqueId clamp_Int4_Int1_Int1 = TSymbolUniqueId(3285);
+ static constexpr const TSymbolUniqueId clamp_Int2_Int2_Int2 = TSymbolUniqueId(3286);
+ static constexpr const TSymbolUniqueId clamp_Int3_Int3_Int3 = TSymbolUniqueId(3287);
+ static constexpr const TSymbolUniqueId clamp_Int4_Int4_Int4 = TSymbolUniqueId(3288);
+ static constexpr const TSymbolUniqueId clamp_UInt1_UInt1_UInt1 = TSymbolUniqueId(3289);
+ static constexpr const TSymbolUniqueId clamp_UInt2_UInt1_UInt1 = TSymbolUniqueId(3290);
+ static constexpr const TSymbolUniqueId clamp_UInt3_UInt1_UInt1 = TSymbolUniqueId(3291);
+ static constexpr const TSymbolUniqueId clamp_UInt4_UInt1_UInt1 = TSymbolUniqueId(3292);
+ static constexpr const TSymbolUniqueId clamp_UInt2_UInt2_UInt2 = TSymbolUniqueId(3293);
+ static constexpr const TSymbolUniqueId clamp_UInt3_UInt3_UInt3 = TSymbolUniqueId(3294);
+ static constexpr const TSymbolUniqueId clamp_UInt4_UInt4_UInt4 = TSymbolUniqueId(3295);
+ static constexpr const TSymbolUniqueId mix_Float1_Float1_Float1 = TSymbolUniqueId(3296);
+ static constexpr const TSymbolUniqueId mix_Float2_Float2_Float1 = TSymbolUniqueId(3297);
+ static constexpr const TSymbolUniqueId mix_Float3_Float3_Float1 = TSymbolUniqueId(3298);
+ static constexpr const TSymbolUniqueId mix_Float4_Float4_Float1 = TSymbolUniqueId(3299);
+ static constexpr const TSymbolUniqueId mix_Float2_Float2_Float2 = TSymbolUniqueId(3300);
+ static constexpr const TSymbolUniqueId mix_Float3_Float3_Float3 = TSymbolUniqueId(3301);
+ static constexpr const TSymbolUniqueId mix_Float4_Float4_Float4 = TSymbolUniqueId(3302);
+ static constexpr const TSymbolUniqueId mix_Float1_Float1_Bool1 = TSymbolUniqueId(3303);
+ static constexpr const TSymbolUniqueId pt00F = TSymbolUniqueId(3304);
+ static constexpr const TSymbolUniqueId mix_Float2_Float2_Bool2 = TSymbolUniqueId(3305);
+ static constexpr const TSymbolUniqueId pt10F = TSymbolUniqueId(3306);
+ static constexpr const TSymbolUniqueId mix_Float3_Float3_Bool3 = TSymbolUniqueId(3307);
+ static constexpr const TSymbolUniqueId pt20F = TSymbolUniqueId(3308);
+ static constexpr const TSymbolUniqueId mix_Float4_Float4_Bool4 = TSymbolUniqueId(3309);
+ static constexpr const TSymbolUniqueId pt30F = TSymbolUniqueId(3310);
+ static constexpr const TSymbolUniqueId mix_Int1_Int1_Bool1 = TSymbolUniqueId(3311);
+ static constexpr const TSymbolUniqueId mix_Int2_Int2_Bool2 = TSymbolUniqueId(3312);
+ static constexpr const TSymbolUniqueId mix_Int3_Int3_Bool3 = TSymbolUniqueId(3313);
+ static constexpr const TSymbolUniqueId mix_Int4_Int4_Bool4 = TSymbolUniqueId(3314);
+ static constexpr const TSymbolUniqueId mix_UInt1_UInt1_Bool1 = TSymbolUniqueId(3315);
+ static constexpr const TSymbolUniqueId mix_UInt2_UInt2_Bool2 = TSymbolUniqueId(3316);
+ static constexpr const TSymbolUniqueId mix_UInt3_UInt3_Bool3 = TSymbolUniqueId(3317);
+ static constexpr const TSymbolUniqueId mix_UInt4_UInt4_Bool4 = TSymbolUniqueId(3318);
+ static constexpr const TSymbolUniqueId mix_Bool1_Bool1_Bool1 = TSymbolUniqueId(3319);
+ static constexpr const TSymbolUniqueId mix_Bool2_Bool2_Bool2 = TSymbolUniqueId(3320);
+ static constexpr const TSymbolUniqueId mix_Bool3_Bool3_Bool3 = TSymbolUniqueId(3321);
+ static constexpr const TSymbolUniqueId mix_Bool4_Bool4_Bool4 = TSymbolUniqueId(3322);
+ static constexpr const TSymbolUniqueId step_Float1_Float1 = TSymbolUniqueId(3323);
+ static constexpr const TSymbolUniqueId step_Float2_Float2 = TSymbolUniqueId(3324);
+ static constexpr const TSymbolUniqueId step_Float3_Float3 = TSymbolUniqueId(3325);
+ static constexpr const TSymbolUniqueId step_Float4_Float4 = TSymbolUniqueId(3326);
+ static constexpr const TSymbolUniqueId step_Float1_Float2 = TSymbolUniqueId(3327);
+ static constexpr const TSymbolUniqueId step_Float1_Float3 = TSymbolUniqueId(3328);
+ static constexpr const TSymbolUniqueId step_Float1_Float4 = TSymbolUniqueId(3329);
+ static constexpr const TSymbolUniqueId smoothstep_Float1_Float1_Float1 = TSymbolUniqueId(3330);
+ static constexpr const TSymbolUniqueId smoothstep_Float2_Float2_Float2 = TSymbolUniqueId(3331);
+ static constexpr const TSymbolUniqueId smoothstep_Float3_Float3_Float3 = TSymbolUniqueId(3332);
+ static constexpr const TSymbolUniqueId smoothstep_Float4_Float4_Float4 = TSymbolUniqueId(3333);
+ static constexpr const TSymbolUniqueId smoothstep_Float1_Float1_Float2 = TSymbolUniqueId(3334);
+ static constexpr const TSymbolUniqueId smoothstep_Float1_Float1_Float3 = TSymbolUniqueId(3335);
+ static constexpr const TSymbolUniqueId smoothstep_Float1_Float1_Float4 = TSymbolUniqueId(3336);
+ static constexpr const TSymbolUniqueId modf_Float1_Float1 = TSymbolUniqueId(3337);
+ static constexpr const TSymbolUniqueId pt_o_00B = TSymbolUniqueId(3338);
+ static constexpr const TSymbolUniqueId modf_Float2_Float2 = TSymbolUniqueId(3339);
+ static constexpr const TSymbolUniqueId pt_o_10B = TSymbolUniqueId(3340);
+ static constexpr const TSymbolUniqueId modf_Float3_Float3 = TSymbolUniqueId(3341);
+ static constexpr const TSymbolUniqueId pt_o_20B = TSymbolUniqueId(3342);
+ static constexpr const TSymbolUniqueId modf_Float4_Float4 = TSymbolUniqueId(3343);
+ static constexpr const TSymbolUniqueId pt_o_30B = TSymbolUniqueId(3344);
+ static constexpr const TSymbolUniqueId isnan_Float1 = TSymbolUniqueId(3345);
+ static constexpr const TSymbolUniqueId isnan_Float2 = TSymbolUniqueId(3346);
+ static constexpr const TSymbolUniqueId isnan_Float3 = TSymbolUniqueId(3347);
+ static constexpr const TSymbolUniqueId isnan_Float4 = TSymbolUniqueId(3348);
+ static constexpr const TSymbolUniqueId isinf_Float1 = TSymbolUniqueId(3349);
+ static constexpr const TSymbolUniqueId isinf_Float2 = TSymbolUniqueId(3350);
+ static constexpr const TSymbolUniqueId isinf_Float3 = TSymbolUniqueId(3351);
+ static constexpr const TSymbolUniqueId isinf_Float4 = TSymbolUniqueId(3352);
+ static constexpr const TSymbolUniqueId floatBitsToInt_Float1 = TSymbolUniqueId(3353);
+ static constexpr const TSymbolUniqueId floatBitsToInt_Float2 = TSymbolUniqueId(3354);
+ static constexpr const TSymbolUniqueId floatBitsToInt_Float3 = TSymbolUniqueId(3355);
+ static constexpr const TSymbolUniqueId floatBitsToInt_Float4 = TSymbolUniqueId(3356);
+ static constexpr const TSymbolUniqueId floatBitsToUint_Float1 = TSymbolUniqueId(3357);
+ static constexpr const TSymbolUniqueId floatBitsToUint_Float2 = TSymbolUniqueId(3358);
+ static constexpr const TSymbolUniqueId floatBitsToUint_Float3 = TSymbolUniqueId(3359);
+ static constexpr const TSymbolUniqueId floatBitsToUint_Float4 = TSymbolUniqueId(3360);
+ static constexpr const TSymbolUniqueId intBitsToFloat_Int1 = TSymbolUniqueId(3361);
+ static constexpr const TSymbolUniqueId intBitsToFloat_Int2 = TSymbolUniqueId(3362);
+ static constexpr const TSymbolUniqueId intBitsToFloat_Int3 = TSymbolUniqueId(3363);
+ static constexpr const TSymbolUniqueId intBitsToFloat_Int4 = TSymbolUniqueId(3364);
+ static constexpr const TSymbolUniqueId uintBitsToFloat_UInt1 = TSymbolUniqueId(3365);
+ static constexpr const TSymbolUniqueId uintBitsToFloat_UInt2 = TSymbolUniqueId(3366);
+ static constexpr const TSymbolUniqueId uintBitsToFloat_UInt3 = TSymbolUniqueId(3367);
+ static constexpr const TSymbolUniqueId uintBitsToFloat_UInt4 = TSymbolUniqueId(3368);
+ static constexpr const TSymbolUniqueId fma_Float1_Float1_Float1 = TSymbolUniqueId(3369);
+ static constexpr const TSymbolUniqueId fma_Float2_Float2_Float2 = TSymbolUniqueId(3370);
+ static constexpr const TSymbolUniqueId fma_Float3_Float3_Float3 = TSymbolUniqueId(3371);
+ static constexpr const TSymbolUniqueId fma_Float4_Float4_Float4 = TSymbolUniqueId(3372);
+ static constexpr const TSymbolUniqueId fmaExt_Float1_Float1_Float1 = TSymbolUniqueId(3373);
+ static constexpr const TSymbolUniqueId fmaExt_Float2_Float2_Float2 = TSymbolUniqueId(3374);
+ static constexpr const TSymbolUniqueId fmaExt_Float3_Float3_Float3 = TSymbolUniqueId(3375);
+ static constexpr const TSymbolUniqueId fmaExt_Float4_Float4_Float4 = TSymbolUniqueId(3376);
+ static constexpr const TSymbolUniqueId frexp_Float1_Int1 = TSymbolUniqueId(3377);
+ static constexpr const TSymbolUniqueId pt_o_00D = TSymbolUniqueId(3378);
+ static constexpr const TSymbolUniqueId frexp_Float2_Int2 = TSymbolUniqueId(3379);
+ static constexpr const TSymbolUniqueId pt_o_10D = TSymbolUniqueId(3380);
+ static constexpr const TSymbolUniqueId frexp_Float3_Int3 = TSymbolUniqueId(3381);
+ static constexpr const TSymbolUniqueId pt_o_20D = TSymbolUniqueId(3382);
+ static constexpr const TSymbolUniqueId frexp_Float4_Int4 = TSymbolUniqueId(3383);
+ static constexpr const TSymbolUniqueId pt_o_30D = TSymbolUniqueId(3384);
+ static constexpr const TSymbolUniqueId ldexp_Float1_Int1 = TSymbolUniqueId(3385);
+ static constexpr const TSymbolUniqueId ldexp_Float2_Int2 = TSymbolUniqueId(3386);
+ static constexpr const TSymbolUniqueId ldexp_Float3_Int3 = TSymbolUniqueId(3387);
+ static constexpr const TSymbolUniqueId ldexp_Float4_Int4 = TSymbolUniqueId(3388);
+ static constexpr const TSymbolUniqueId packSnorm2x16_Float2 = TSymbolUniqueId(3389);
+ static constexpr const TSymbolUniqueId packHalf2x16_Float2 = TSymbolUniqueId(3390);
+ static constexpr const TSymbolUniqueId unpackSnorm2x16_UInt1 = TSymbolUniqueId(3391);
+ static constexpr const TSymbolUniqueId unpackHalf2x16_UInt1 = TSymbolUniqueId(3392);
+ static constexpr const TSymbolUniqueId packUnorm2x16_Float2 = TSymbolUniqueId(3393);
+ static constexpr const TSymbolUniqueId unpackUnorm2x16_UInt1 = TSymbolUniqueId(3394);
+ static constexpr const TSymbolUniqueId packUnorm4x8_Float4 = TSymbolUniqueId(3395);
+ static constexpr const TSymbolUniqueId packSnorm4x8_Float4 = TSymbolUniqueId(3396);
+ static constexpr const TSymbolUniqueId unpackUnorm4x8_UInt1 = TSymbolUniqueId(3397);
+ static constexpr const TSymbolUniqueId unpackSnorm4x8_UInt1 = TSymbolUniqueId(3398);
+ static constexpr const TSymbolUniqueId length_Float1 = TSymbolUniqueId(3399);
+ static constexpr const TSymbolUniqueId length_Float2 = TSymbolUniqueId(3400);
+ static constexpr const TSymbolUniqueId length_Float3 = TSymbolUniqueId(3401);
+ static constexpr const TSymbolUniqueId length_Float4 = TSymbolUniqueId(3402);
+ static constexpr const TSymbolUniqueId distance_Float1_Float1 = TSymbolUniqueId(3403);
+ static constexpr const TSymbolUniqueId distance_Float2_Float2 = TSymbolUniqueId(3404);
+ static constexpr const TSymbolUniqueId distance_Float3_Float3 = TSymbolUniqueId(3405);
+ static constexpr const TSymbolUniqueId distance_Float4_Float4 = TSymbolUniqueId(3406);
+ static constexpr const TSymbolUniqueId dot_Float1_Float1 = TSymbolUniqueId(3407);
+ static constexpr const TSymbolUniqueId dot_Float2_Float2 = TSymbolUniqueId(3408);
+ static constexpr const TSymbolUniqueId dot_Float3_Float3 = TSymbolUniqueId(3409);
+ static constexpr const TSymbolUniqueId dot_Float4_Float4 = TSymbolUniqueId(3410);
+ static constexpr const TSymbolUniqueId cross_Float3_Float3 = TSymbolUniqueId(3411);
+ static constexpr const TSymbolUniqueId normalize_Float1 = TSymbolUniqueId(3412);
+ static constexpr const TSymbolUniqueId normalize_Float2 = TSymbolUniqueId(3413);
+ static constexpr const TSymbolUniqueId normalize_Float3 = TSymbolUniqueId(3414);
+ static constexpr const TSymbolUniqueId normalize_Float4 = TSymbolUniqueId(3415);
+ static constexpr const TSymbolUniqueId faceforward_Float1_Float1_Float1 = TSymbolUniqueId(3416);
+ static constexpr const TSymbolUniqueId faceforward_Float2_Float2_Float2 = TSymbolUniqueId(3417);
+ static constexpr const TSymbolUniqueId faceforward_Float3_Float3_Float3 = TSymbolUniqueId(3418);
+ static constexpr const TSymbolUniqueId faceforward_Float4_Float4_Float4 = TSymbolUniqueId(3419);
+ static constexpr const TSymbolUniqueId reflect_Float1_Float1 = TSymbolUniqueId(3420);
+ static constexpr const TSymbolUniqueId reflect_Float2_Float2 = TSymbolUniqueId(3421);
+ static constexpr const TSymbolUniqueId reflect_Float3_Float3 = TSymbolUniqueId(3422);
+ static constexpr const TSymbolUniqueId reflect_Float4_Float4 = TSymbolUniqueId(3423);
+ static constexpr const TSymbolUniqueId refract_Float1_Float1_Float1 = TSymbolUniqueId(3424);
+ static constexpr const TSymbolUniqueId refract_Float2_Float2_Float1 = TSymbolUniqueId(3425);
+ static constexpr const TSymbolUniqueId refract_Float3_Float3_Float1 = TSymbolUniqueId(3426);
+ static constexpr const TSymbolUniqueId refract_Float4_Float4_Float1 = TSymbolUniqueId(3427);
+ static constexpr const TSymbolUniqueId matrixCompMult_Float2x2_Float2x2 = TSymbolUniqueId(3428);
+ static constexpr const TSymbolUniqueId pt50B = TSymbolUniqueId(3429);
+ static constexpr const TSymbolUniqueId matrixCompMult_Float3x3_Float3x3 = TSymbolUniqueId(3430);
+ static constexpr const TSymbolUniqueId ptA0B = TSymbolUniqueId(3431);
+ static constexpr const TSymbolUniqueId matrixCompMult_Float4x4_Float4x4 = TSymbolUniqueId(3432);
+ static constexpr const TSymbolUniqueId ptF0B = TSymbolUniqueId(3433);
+ static constexpr const TSymbolUniqueId matrixCompMult_Float2x3_Float2x3 = TSymbolUniqueId(3434);
+ static constexpr const TSymbolUniqueId pt90B = TSymbolUniqueId(3435);
+ static constexpr const TSymbolUniqueId matrixCompMult_Float3x2_Float3x2 = TSymbolUniqueId(3436);
+ static constexpr const TSymbolUniqueId pt60B = TSymbolUniqueId(3437);
+ static constexpr const TSymbolUniqueId matrixCompMult_Float2x4_Float2x4 = TSymbolUniqueId(3438);
+ static constexpr const TSymbolUniqueId ptD0B = TSymbolUniqueId(3439);
+ static constexpr const TSymbolUniqueId matrixCompMult_Float4x2_Float4x2 = TSymbolUniqueId(3440);
+ static constexpr const TSymbolUniqueId pt70B = TSymbolUniqueId(3441);
+ static constexpr const TSymbolUniqueId matrixCompMult_Float3x4_Float3x4 = TSymbolUniqueId(3442);
+ static constexpr const TSymbolUniqueId ptE0B = TSymbolUniqueId(3443);
+ static constexpr const TSymbolUniqueId matrixCompMult_Float4x3_Float4x3 = TSymbolUniqueId(3444);
+ static constexpr const TSymbolUniqueId ptB0B = TSymbolUniqueId(3445);
+ static constexpr const TSymbolUniqueId outerProduct_Float2_Float2 = TSymbolUniqueId(3446);
+ static constexpr const TSymbolUniqueId outerProduct_Float3_Float3 = TSymbolUniqueId(3447);
+ static constexpr const TSymbolUniqueId outerProduct_Float4_Float4 = TSymbolUniqueId(3448);
+ static constexpr const TSymbolUniqueId outerProduct_Float3_Float2 = TSymbolUniqueId(3449);
+ static constexpr const TSymbolUniqueId outerProduct_Float2_Float3 = TSymbolUniqueId(3450);
+ static constexpr const TSymbolUniqueId outerProduct_Float4_Float2 = TSymbolUniqueId(3451);
+ static constexpr const TSymbolUniqueId outerProduct_Float2_Float4 = TSymbolUniqueId(3452);
+ static constexpr const TSymbolUniqueId outerProduct_Float4_Float3 = TSymbolUniqueId(3453);
+ static constexpr const TSymbolUniqueId outerProduct_Float3_Float4 = TSymbolUniqueId(3454);
+ static constexpr const TSymbolUniqueId transpose_Float2x2 = TSymbolUniqueId(3455);
+ static constexpr const TSymbolUniqueId transpose_Float3x3 = TSymbolUniqueId(3456);
+ static constexpr const TSymbolUniqueId transpose_Float4x4 = TSymbolUniqueId(3457);
+ static constexpr const TSymbolUniqueId transpose_Float3x2 = TSymbolUniqueId(3458);
+ static constexpr const TSymbolUniqueId transpose_Float2x3 = TSymbolUniqueId(3459);
+ static constexpr const TSymbolUniqueId transpose_Float4x2 = TSymbolUniqueId(3460);
+ static constexpr const TSymbolUniqueId transpose_Float2x4 = TSymbolUniqueId(3461);
+ static constexpr const TSymbolUniqueId transpose_Float4x3 = TSymbolUniqueId(3462);
+ static constexpr const TSymbolUniqueId transpose_Float3x4 = TSymbolUniqueId(3463);
+ static constexpr const TSymbolUniqueId determinant_Float2x2 = TSymbolUniqueId(3464);
+ static constexpr const TSymbolUniqueId determinant_Float3x3 = TSymbolUniqueId(3465);
+ static constexpr const TSymbolUniqueId determinant_Float4x4 = TSymbolUniqueId(3466);
+ static constexpr const TSymbolUniqueId inverse_Float2x2 = TSymbolUniqueId(3467);
+ static constexpr const TSymbolUniqueId inverse_Float3x3 = TSymbolUniqueId(3468);
+ static constexpr const TSymbolUniqueId inverse_Float4x4 = TSymbolUniqueId(3469);
+ static constexpr const TSymbolUniqueId lessThan_Float2_Float2 = TSymbolUniqueId(3470);
+ static constexpr const TSymbolUniqueId lessThan_Float3_Float3 = TSymbolUniqueId(3471);
+ static constexpr const TSymbolUniqueId lessThan_Float4_Float4 = TSymbolUniqueId(3472);
+ static constexpr const TSymbolUniqueId lessThan_Int2_Int2 = TSymbolUniqueId(3473);
+ static constexpr const TSymbolUniqueId lessThan_Int3_Int3 = TSymbolUniqueId(3474);
+ static constexpr const TSymbolUniqueId lessThan_Int4_Int4 = TSymbolUniqueId(3475);
+ static constexpr const TSymbolUniqueId lessThan_UInt2_UInt2 = TSymbolUniqueId(3476);
+ static constexpr const TSymbolUniqueId lessThan_UInt3_UInt3 = TSymbolUniqueId(3477);
+ static constexpr const TSymbolUniqueId lessThan_UInt4_UInt4 = TSymbolUniqueId(3478);
+ static constexpr const TSymbolUniqueId lessThanEqual_Float2_Float2 = TSymbolUniqueId(3479);
+ static constexpr const TSymbolUniqueId lessThanEqual_Float3_Float3 = TSymbolUniqueId(3480);
+ static constexpr const TSymbolUniqueId lessThanEqual_Float4_Float4 = TSymbolUniqueId(3481);
+ static constexpr const TSymbolUniqueId lessThanEqual_Int2_Int2 = TSymbolUniqueId(3482);
+ static constexpr const TSymbolUniqueId lessThanEqual_Int3_Int3 = TSymbolUniqueId(3483);
+ static constexpr const TSymbolUniqueId lessThanEqual_Int4_Int4 = TSymbolUniqueId(3484);
+ static constexpr const TSymbolUniqueId lessThanEqual_UInt2_UInt2 = TSymbolUniqueId(3485);
+ static constexpr const TSymbolUniqueId lessThanEqual_UInt3_UInt3 = TSymbolUniqueId(3486);
+ static constexpr const TSymbolUniqueId lessThanEqual_UInt4_UInt4 = TSymbolUniqueId(3487);
+ static constexpr const TSymbolUniqueId greaterThan_Float2_Float2 = TSymbolUniqueId(3488);
+ static constexpr const TSymbolUniqueId greaterThan_Float3_Float3 = TSymbolUniqueId(3489);
+ static constexpr const TSymbolUniqueId greaterThan_Float4_Float4 = TSymbolUniqueId(3490);
+ static constexpr const TSymbolUniqueId greaterThan_Int2_Int2 = TSymbolUniqueId(3491);
+ static constexpr const TSymbolUniqueId greaterThan_Int3_Int3 = TSymbolUniqueId(3492);
+ static constexpr const TSymbolUniqueId greaterThan_Int4_Int4 = TSymbolUniqueId(3493);
+ static constexpr const TSymbolUniqueId greaterThan_UInt2_UInt2 = TSymbolUniqueId(3494);
+ static constexpr const TSymbolUniqueId greaterThan_UInt3_UInt3 = TSymbolUniqueId(3495);
+ static constexpr const TSymbolUniqueId greaterThan_UInt4_UInt4 = TSymbolUniqueId(3496);
+ static constexpr const TSymbolUniqueId greaterThanEqual_Float2_Float2 = TSymbolUniqueId(3497);
+ static constexpr const TSymbolUniqueId greaterThanEqual_Float3_Float3 = TSymbolUniqueId(3498);
+ static constexpr const TSymbolUniqueId greaterThanEqual_Float4_Float4 = TSymbolUniqueId(3499);
+ static constexpr const TSymbolUniqueId greaterThanEqual_Int2_Int2 = TSymbolUniqueId(3500);
+ static constexpr const TSymbolUniqueId greaterThanEqual_Int3_Int3 = TSymbolUniqueId(3501);
+ static constexpr const TSymbolUniqueId greaterThanEqual_Int4_Int4 = TSymbolUniqueId(3502);
+ static constexpr const TSymbolUniqueId greaterThanEqual_UInt2_UInt2 = TSymbolUniqueId(3503);
+ static constexpr const TSymbolUniqueId greaterThanEqual_UInt3_UInt3 = TSymbolUniqueId(3504);
+ static constexpr const TSymbolUniqueId greaterThanEqual_UInt4_UInt4 = TSymbolUniqueId(3505);
+ static constexpr const TSymbolUniqueId equal_Float2_Float2 = TSymbolUniqueId(3506);
+ static constexpr const TSymbolUniqueId equal_Float3_Float3 = TSymbolUniqueId(3507);
+ static constexpr const TSymbolUniqueId equal_Float4_Float4 = TSymbolUniqueId(3508);
+ static constexpr const TSymbolUniqueId equal_Int2_Int2 = TSymbolUniqueId(3509);
+ static constexpr const TSymbolUniqueId equal_Int3_Int3 = TSymbolUniqueId(3510);
+ static constexpr const TSymbolUniqueId equal_Int4_Int4 = TSymbolUniqueId(3511);
+ static constexpr const TSymbolUniqueId equal_UInt2_UInt2 = TSymbolUniqueId(3512);
+ static constexpr const TSymbolUniqueId equal_UInt3_UInt3 = TSymbolUniqueId(3513);
+ static constexpr const TSymbolUniqueId equal_UInt4_UInt4 = TSymbolUniqueId(3514);
+ static constexpr const TSymbolUniqueId equal_Bool2_Bool2 = TSymbolUniqueId(3515);
+ static constexpr const TSymbolUniqueId equal_Bool3_Bool3 = TSymbolUniqueId(3516);
+ static constexpr const TSymbolUniqueId equal_Bool4_Bool4 = TSymbolUniqueId(3517);
+ static constexpr const TSymbolUniqueId notEqual_Float2_Float2 = TSymbolUniqueId(3518);
+ static constexpr const TSymbolUniqueId notEqual_Float3_Float3 = TSymbolUniqueId(3519);
+ static constexpr const TSymbolUniqueId notEqual_Float4_Float4 = TSymbolUniqueId(3520);
+ static constexpr const TSymbolUniqueId notEqual_Int2_Int2 = TSymbolUniqueId(3521);
+ static constexpr const TSymbolUniqueId notEqual_Int3_Int3 = TSymbolUniqueId(3522);
+ static constexpr const TSymbolUniqueId notEqual_Int4_Int4 = TSymbolUniqueId(3523);
+ static constexpr const TSymbolUniqueId notEqual_UInt2_UInt2 = TSymbolUniqueId(3524);
+ static constexpr const TSymbolUniqueId notEqual_UInt3_UInt3 = TSymbolUniqueId(3525);
+ static constexpr const TSymbolUniqueId notEqual_UInt4_UInt4 = TSymbolUniqueId(3526);
+ static constexpr const TSymbolUniqueId notEqual_Bool2_Bool2 = TSymbolUniqueId(3527);
+ static constexpr const TSymbolUniqueId notEqual_Bool3_Bool3 = TSymbolUniqueId(3528);
+ static constexpr const TSymbolUniqueId notEqual_Bool4_Bool4 = TSymbolUniqueId(3529);
+ static constexpr const TSymbolUniqueId any_Bool2 = TSymbolUniqueId(3530);
+ static constexpr const TSymbolUniqueId any_Bool3 = TSymbolUniqueId(3531);
+ static constexpr const TSymbolUniqueId any_Bool4 = TSymbolUniqueId(3532);
+ static constexpr const TSymbolUniqueId all_Bool2 = TSymbolUniqueId(3533);
+ static constexpr const TSymbolUniqueId all_Bool3 = TSymbolUniqueId(3534);
+ static constexpr const TSymbolUniqueId all_Bool4 = TSymbolUniqueId(3535);
+ static constexpr const TSymbolUniqueId notFunc_Bool2 = TSymbolUniqueId(3536);
+ static constexpr const TSymbolUniqueId notFunc_Bool3 = TSymbolUniqueId(3537);
+ static constexpr const TSymbolUniqueId notFunc_Bool4 = TSymbolUniqueId(3538);
+ static constexpr const TSymbolUniqueId bitfieldExtract_Int1_Int1_Int1 = TSymbolUniqueId(3539);
+ static constexpr const TSymbolUniqueId bitfieldExtract_Int2_Int1_Int1 = TSymbolUniqueId(3540);
+ static constexpr const TSymbolUniqueId bitfieldExtract_Int3_Int1_Int1 = TSymbolUniqueId(3541);
+ static constexpr const TSymbolUniqueId bitfieldExtract_Int4_Int1_Int1 = TSymbolUniqueId(3542);
+ static constexpr const TSymbolUniqueId bitfieldExtract_UInt1_Int1_Int1 = TSymbolUniqueId(3543);
+ static constexpr const TSymbolUniqueId bitfieldExtract_UInt2_Int1_Int1 = TSymbolUniqueId(3544);
+ static constexpr const TSymbolUniqueId bitfieldExtract_UInt3_Int1_Int1 = TSymbolUniqueId(3545);
+ static constexpr const TSymbolUniqueId bitfieldExtract_UInt4_Int1_Int1 = TSymbolUniqueId(3546);
+ static constexpr const TSymbolUniqueId bitfieldInsert_Int1_Int1_Int1_Int1 =
+ TSymbolUniqueId(3547);
+ static constexpr const TSymbolUniqueId bitfieldInsert_Int2_Int2_Int1_Int1 =
+ TSymbolUniqueId(3548);
+ static constexpr const TSymbolUniqueId bitfieldInsert_Int3_Int3_Int1_Int1 =
+ TSymbolUniqueId(3549);
+ static constexpr const TSymbolUniqueId bitfieldInsert_Int4_Int4_Int1_Int1 =
+ TSymbolUniqueId(3550);
+ static constexpr const TSymbolUniqueId bitfieldInsert_UInt1_UInt1_Int1_Int1 =
+ TSymbolUniqueId(3551);
+ static constexpr const TSymbolUniqueId bitfieldInsert_UInt2_UInt2_Int1_Int1 =
+ TSymbolUniqueId(3552);
+ static constexpr const TSymbolUniqueId bitfieldInsert_UInt3_UInt3_Int1_Int1 =
+ TSymbolUniqueId(3553);
+ static constexpr const TSymbolUniqueId bitfieldInsert_UInt4_UInt4_Int1_Int1 =
+ TSymbolUniqueId(3554);
+ static constexpr const TSymbolUniqueId bitfieldReverse_Int1 = TSymbolUniqueId(3555);
+ static constexpr const TSymbolUniqueId bitfieldReverse_Int2 = TSymbolUniqueId(3556);
+ static constexpr const TSymbolUniqueId bitfieldReverse_Int3 = TSymbolUniqueId(3557);
+ static constexpr const TSymbolUniqueId bitfieldReverse_Int4 = TSymbolUniqueId(3558);
+ static constexpr const TSymbolUniqueId bitfieldReverse_UInt1 = TSymbolUniqueId(3559);
+ static constexpr const TSymbolUniqueId bitfieldReverse_UInt2 = TSymbolUniqueId(3560);
+ static constexpr const TSymbolUniqueId bitfieldReverse_UInt3 = TSymbolUniqueId(3561);
+ static constexpr const TSymbolUniqueId bitfieldReverse_UInt4 = TSymbolUniqueId(3562);
+ static constexpr const TSymbolUniqueId bitCount_Int1 = TSymbolUniqueId(3563);
+ static constexpr const TSymbolUniqueId bitCount_Int2 = TSymbolUniqueId(3564);
+ static constexpr const TSymbolUniqueId bitCount_Int3 = TSymbolUniqueId(3565);
+ static constexpr const TSymbolUniqueId bitCount_Int4 = TSymbolUniqueId(3566);
+ static constexpr const TSymbolUniqueId bitCount_UInt1 = TSymbolUniqueId(3567);
+ static constexpr const TSymbolUniqueId bitCount_UInt2 = TSymbolUniqueId(3568);
+ static constexpr const TSymbolUniqueId bitCount_UInt3 = TSymbolUniqueId(3569);
+ static constexpr const TSymbolUniqueId bitCount_UInt4 = TSymbolUniqueId(3570);
+ static constexpr const TSymbolUniqueId findLSB_Int1 = TSymbolUniqueId(3571);
+ static constexpr const TSymbolUniqueId findLSB_Int2 = TSymbolUniqueId(3572);
+ static constexpr const TSymbolUniqueId findLSB_Int3 = TSymbolUniqueId(3573);
+ static constexpr const TSymbolUniqueId findLSB_Int4 = TSymbolUniqueId(3574);
+ static constexpr const TSymbolUniqueId findLSB_UInt1 = TSymbolUniqueId(3575);
+ static constexpr const TSymbolUniqueId findLSB_UInt2 = TSymbolUniqueId(3576);
+ static constexpr const TSymbolUniqueId findLSB_UInt3 = TSymbolUniqueId(3577);
+ static constexpr const TSymbolUniqueId findLSB_UInt4 = TSymbolUniqueId(3578);
+ static constexpr const TSymbolUniqueId findMSB_Int1 = TSymbolUniqueId(3579);
+ static constexpr const TSymbolUniqueId findMSB_Int2 = TSymbolUniqueId(3580);
+ static constexpr const TSymbolUniqueId findMSB_Int3 = TSymbolUniqueId(3581);
+ static constexpr const TSymbolUniqueId findMSB_Int4 = TSymbolUniqueId(3582);
+ static constexpr const TSymbolUniqueId findMSB_UInt1 = TSymbolUniqueId(3583);
+ static constexpr const TSymbolUniqueId findMSB_UInt2 = TSymbolUniqueId(3584);
+ static constexpr const TSymbolUniqueId findMSB_UInt3 = TSymbolUniqueId(3585);
+ static constexpr const TSymbolUniqueId findMSB_UInt4 = TSymbolUniqueId(3586);
+ static constexpr const TSymbolUniqueId uaddCarry_UInt1_UInt1_UInt1 = TSymbolUniqueId(3587);
+ static constexpr const TSymbolUniqueId pt_o_00E = TSymbolUniqueId(3588);
+ static constexpr const TSymbolUniqueId uaddCarry_UInt2_UInt2_UInt2 = TSymbolUniqueId(3589);
+ static constexpr const TSymbolUniqueId pt_o_10E = TSymbolUniqueId(3590);
+ static constexpr const TSymbolUniqueId uaddCarry_UInt3_UInt3_UInt3 = TSymbolUniqueId(3591);
+ static constexpr const TSymbolUniqueId pt_o_20E = TSymbolUniqueId(3592);
+ static constexpr const TSymbolUniqueId uaddCarry_UInt4_UInt4_UInt4 = TSymbolUniqueId(3593);
+ static constexpr const TSymbolUniqueId pt_o_30E = TSymbolUniqueId(3594);
+ static constexpr const TSymbolUniqueId usubBorrow_UInt1_UInt1_UInt1 = TSymbolUniqueId(3595);
+ static constexpr const TSymbolUniqueId usubBorrow_UInt2_UInt2_UInt2 = TSymbolUniqueId(3596);
+ static constexpr const TSymbolUniqueId usubBorrow_UInt3_UInt3_UInt3 = TSymbolUniqueId(3597);
+ static constexpr const TSymbolUniqueId usubBorrow_UInt4_UInt4_UInt4 = TSymbolUniqueId(3598);
+ static constexpr const TSymbolUniqueId umulExtended_UInt1_UInt1_UInt1_UInt1 =
+ TSymbolUniqueId(3599);
+ static constexpr const TSymbolUniqueId umulExtended_UInt2_UInt2_UInt2_UInt2 =
+ TSymbolUniqueId(3600);
+ static constexpr const TSymbolUniqueId umulExtended_UInt3_UInt3_UInt3_UInt3 =
+ TSymbolUniqueId(3601);
+ static constexpr const TSymbolUniqueId umulExtended_UInt4_UInt4_UInt4_UInt4 =
+ TSymbolUniqueId(3602);
+ static constexpr const TSymbolUniqueId imulExtended_Int1_Int1_Int1_Int1 = TSymbolUniqueId(3603);
+ static constexpr const TSymbolUniqueId imulExtended_Int2_Int2_Int2_Int2 = TSymbolUniqueId(3604);
+ static constexpr const TSymbolUniqueId imulExtended_Int3_Int3_Int3_Int3 = TSymbolUniqueId(3605);
+ static constexpr const TSymbolUniqueId imulExtended_Int4_Int4_Int4_Int4 = TSymbolUniqueId(3606);
+ static constexpr const TSymbolUniqueId texture2D_Sampler2D1_Float2 = TSymbolUniqueId(3607);
+ static constexpr const TSymbolUniqueId pt00I = TSymbolUniqueId(3608);
+ static constexpr const TSymbolUniqueId texture2DProj_Sampler2D1_Float3 = TSymbolUniqueId(3609);
+ static constexpr const TSymbolUniqueId texture2DProj_Sampler2D1_Float4 = TSymbolUniqueId(3610);
+ static constexpr const TSymbolUniqueId textureCube_SamplerCube1_Float3 = TSymbolUniqueId(3611);
+ static constexpr const TSymbolUniqueId pt00K = TSymbolUniqueId(3612);
+ static constexpr const TSymbolUniqueId texture3D_Sampler3D1_Float3 = TSymbolUniqueId(3613);
+ static constexpr const TSymbolUniqueId pt00J = TSymbolUniqueId(3614);
+ static constexpr const TSymbolUniqueId texture3DProj_Sampler3D1_Float4 = TSymbolUniqueId(3615);
+ static constexpr const TSymbolUniqueId shadow2DEXT_Sampler2DShadow1_Float3 =
+ TSymbolUniqueId(3616);
+ static constexpr const TSymbolUniqueId pt00d = TSymbolUniqueId(3617);
+ static constexpr const TSymbolUniqueId shadow2DProjEXT_Sampler2DShadow1_Float4 =
+ TSymbolUniqueId(3618);
+ static constexpr const TSymbolUniqueId texture2D_SamplerExternalOES1_Float2 =
+ TSymbolUniqueId(3619);
+ static constexpr const TSymbolUniqueId pt00M = TSymbolUniqueId(3620);
+ static constexpr const TSymbolUniqueId texture2DProj_SamplerExternalOES1_Float3 =
+ TSymbolUniqueId(3621);
+ static constexpr const TSymbolUniqueId texture2DProj_SamplerExternalOES1_Float4 =
+ TSymbolUniqueId(3622);
+ static constexpr const TSymbolUniqueId texture2DRect_Sampler2DRect1_Float2 =
+ TSymbolUniqueId(3623);
+ static constexpr const TSymbolUniqueId pt00O = TSymbolUniqueId(3624);
+ static constexpr const TSymbolUniqueId texture2DRectProj_Sampler2DRect1_Float3 =
+ TSymbolUniqueId(3625);
+ static constexpr const TSymbolUniqueId texture2DRectProj_Sampler2DRect1_Float4 =
+ TSymbolUniqueId(3626);
+ static constexpr const TSymbolUniqueId texture2DGradEXT_Sampler2D1_Float2_Float2_Float2 =
+ TSymbolUniqueId(3627);
+ static constexpr const TSymbolUniqueId texture2DProjGradEXT_Sampler2D1_Float3_Float2_Float2 =
+ TSymbolUniqueId(3628);
+ static constexpr const TSymbolUniqueId texture2DProjGradEXT_Sampler2D1_Float4_Float2_Float2 =
+ TSymbolUniqueId(3629);
+ static constexpr const TSymbolUniqueId textureCubeGradEXT_SamplerCube1_Float3_Float3_Float3 =
+ TSymbolUniqueId(3630);
+ static constexpr const TSymbolUniqueId textureVideoWEBGL_SamplerVideoWEBGL1_Float2 =
+ TSymbolUniqueId(3631);
+ static constexpr const TSymbolUniqueId pt00y = TSymbolUniqueId(3632);
+ static constexpr const TSymbolUniqueId texture2D_Sampler2D1_Float2_Float1 =
+ TSymbolUniqueId(3633);
+ static constexpr const TSymbolUniqueId texture2DProj_Sampler2D1_Float3_Float1 =
+ TSymbolUniqueId(3634);
+ static constexpr const TSymbolUniqueId texture2DProj_Sampler2D1_Float4_Float1 =
+ TSymbolUniqueId(3635);
+ static constexpr const TSymbolUniqueId textureCube_SamplerCube1_Float3_Float1 =
+ TSymbolUniqueId(3636);
+ static constexpr const TSymbolUniqueId texture3D_Sampler3D1_Float3_Float1 =
+ TSymbolUniqueId(3637);
+ static constexpr const TSymbolUniqueId texture3DProj_Sampler3D1_Float4_Float1 =
+ TSymbolUniqueId(3638);
+ static constexpr const TSymbolUniqueId texture3DLod_Sampler3D1_Float3_Float1 =
+ TSymbolUniqueId(3639);
+ static constexpr const TSymbolUniqueId texture3DProjLod_Sampler3D1_Float4_Float1 =
+ TSymbolUniqueId(3640);
+ static constexpr const TSymbolUniqueId texture2DLod_Sampler2D1_Float2_Float1 =
+ TSymbolUniqueId(3641);
+ static constexpr const TSymbolUniqueId texture2DProjLod_Sampler2D1_Float3_Float1 =
+ TSymbolUniqueId(3642);
+ static constexpr const TSymbolUniqueId texture2DProjLod_Sampler2D1_Float4_Float1 =
+ TSymbolUniqueId(3643);
+ static constexpr const TSymbolUniqueId textureCubeLod_SamplerCube1_Float3_Float1 =
+ TSymbolUniqueId(3644);
+ static constexpr const TSymbolUniqueId texture2DLodEXT_Sampler2D1_Float2_Float1 =
+ TSymbolUniqueId(3645);
+ static constexpr const TSymbolUniqueId texture2DProjLodEXT_Sampler2D1_Float3_Float1 =
+ TSymbolUniqueId(3646);
+ static constexpr const TSymbolUniqueId texture2DProjLodEXT_Sampler2D1_Float4_Float1 =
+ TSymbolUniqueId(3647);
+ static constexpr const TSymbolUniqueId textureCubeLodEXT_SamplerCube1_Float3_Float1 =
+ TSymbolUniqueId(3648);
+ static constexpr const TSymbolUniqueId texture_Sampler2D1_Float2 = TSymbolUniqueId(3649);
+ static constexpr const TSymbolUniqueId texture_ISampler2D1_Float2 = TSymbolUniqueId(3650);
+ static constexpr const TSymbolUniqueId pt00R = TSymbolUniqueId(3651);
+ static constexpr const TSymbolUniqueId texture_USampler2D1_Float2 = TSymbolUniqueId(3652);
+ static constexpr const TSymbolUniqueId pt00X = TSymbolUniqueId(3653);
+ static constexpr const TSymbolUniqueId texture_Sampler3D1_Float3 = TSymbolUniqueId(3654);
+ static constexpr const TSymbolUniqueId texture_ISampler3D1_Float3 = TSymbolUniqueId(3655);
+ static constexpr const TSymbolUniqueId pt00S = TSymbolUniqueId(3656);
+ static constexpr const TSymbolUniqueId texture_USampler3D1_Float3 = TSymbolUniqueId(3657);
+ static constexpr const TSymbolUniqueId pt00Y = TSymbolUniqueId(3658);
+ static constexpr const TSymbolUniqueId texture_SamplerCube1_Float3 = TSymbolUniqueId(3659);
+ static constexpr const TSymbolUniqueId texture_ISamplerCube1_Float3 = TSymbolUniqueId(3660);
+ static constexpr const TSymbolUniqueId pt00T = TSymbolUniqueId(3661);
+ static constexpr const TSymbolUniqueId texture_USamplerCube1_Float3 = TSymbolUniqueId(3662);
+ static constexpr const TSymbolUniqueId pt00Z = TSymbolUniqueId(3663);
+ static constexpr const TSymbolUniqueId texture_Sampler2DArray1_Float3 = TSymbolUniqueId(3664);
+ static constexpr const TSymbolUniqueId pt00L = TSymbolUniqueId(3665);
+ static constexpr const TSymbolUniqueId texture_ISampler2DArray1_Float3 = TSymbolUniqueId(3666);
+ static constexpr const TSymbolUniqueId pt00U = TSymbolUniqueId(3667);
+ static constexpr const TSymbolUniqueId texture_USampler2DArray1_Float3 = TSymbolUniqueId(3668);
+ static constexpr const TSymbolUniqueId pt00a = TSymbolUniqueId(3669);
+ static constexpr const TSymbolUniqueId texture_Sampler2DShadow1_Float3 = TSymbolUniqueId(3670);
+ static constexpr const TSymbolUniqueId texture_SamplerCubeShadow1_Float4 =
+ TSymbolUniqueId(3671);
+ static constexpr const TSymbolUniqueId pt00e = TSymbolUniqueId(3672);
+ static constexpr const TSymbolUniqueId texture_Sampler2DArrayShadow1_Float4 =
+ TSymbolUniqueId(3673);
+ static constexpr const TSymbolUniqueId pt00f = TSymbolUniqueId(3674);
+ static constexpr const TSymbolUniqueId texture_SamplerCubeArray1_Float4 = TSymbolUniqueId(3675);
+ static constexpr const TSymbolUniqueId pt00k = TSymbolUniqueId(3676);
+ static constexpr const TSymbolUniqueId texture_ISamplerCubeArray1_Float4 =
+ TSymbolUniqueId(3677);
+ static constexpr const TSymbolUniqueId pt00s = TSymbolUniqueId(3678);
+ static constexpr const TSymbolUniqueId texture_USamplerCubeArray1_Float4 =
+ TSymbolUniqueId(3679);
+ static constexpr const TSymbolUniqueId pt00x = TSymbolUniqueId(3680);
+ static constexpr const TSymbolUniqueId texture_SamplerCubeArrayShadow1_Float4_Float1 =
+ TSymbolUniqueId(3681);
+ static constexpr const TSymbolUniqueId pt00l = TSymbolUniqueId(3682);
+ static constexpr const TSymbolUniqueId textureExt_SamplerCubeArray1_Float4 =
+ TSymbolUniqueId(3683);
+ static constexpr const TSymbolUniqueId textureExt_ISamplerCubeArray1_Float4 =
+ TSymbolUniqueId(3684);
+ static constexpr const TSymbolUniqueId textureExt_USamplerCubeArray1_Float4 =
+ TSymbolUniqueId(3685);
+ static constexpr const TSymbolUniqueId textureExt_SamplerCubeArrayShadow1_Float4_Float1 =
+ TSymbolUniqueId(3686);
+ static constexpr const TSymbolUniqueId texture_SamplerExternalOES1_Float2 =
+ TSymbolUniqueId(3687);
+ static constexpr const TSymbolUniqueId texture_SamplerExternal2DY2YEXT1_Float2 =
+ TSymbolUniqueId(3688);
+ static constexpr const TSymbolUniqueId pt00N = TSymbolUniqueId(3689);
+ static constexpr const TSymbolUniqueId texture_Sampler2DRect1_Float2 = TSymbolUniqueId(3690);
+ static constexpr const TSymbolUniqueId texture_SamplerVideoWEBGL1_Float2 =
+ TSymbolUniqueId(3691);
+ static constexpr const TSymbolUniqueId textureProj_Sampler2D1_Float3 = TSymbolUniqueId(3692);
+ static constexpr const TSymbolUniqueId textureProj_ISampler2D1_Float3 = TSymbolUniqueId(3693);
+ static constexpr const TSymbolUniqueId textureProj_USampler2D1_Float3 = TSymbolUniqueId(3694);
+ static constexpr const TSymbolUniqueId textureProj_Sampler2D1_Float4 = TSymbolUniqueId(3695);
+ static constexpr const TSymbolUniqueId textureProj_ISampler2D1_Float4 = TSymbolUniqueId(3696);
+ static constexpr const TSymbolUniqueId textureProj_USampler2D1_Float4 = TSymbolUniqueId(3697);
+ static constexpr const TSymbolUniqueId textureProj_Sampler3D1_Float4 = TSymbolUniqueId(3698);
+ static constexpr const TSymbolUniqueId textureProj_ISampler3D1_Float4 = TSymbolUniqueId(3699);
+ static constexpr const TSymbolUniqueId textureProj_USampler3D1_Float4 = TSymbolUniqueId(3700);
+ static constexpr const TSymbolUniqueId textureProj_Sampler2DShadow1_Float4 =
+ TSymbolUniqueId(3701);
+ static constexpr const TSymbolUniqueId textureProj_SamplerExternalOES1_Float3 =
+ TSymbolUniqueId(3702);
+ static constexpr const TSymbolUniqueId textureProj_SamplerExternalOES1_Float4 =
+ TSymbolUniqueId(3703);
+ static constexpr const TSymbolUniqueId textureProj_SamplerExternal2DY2YEXT1_Float3 =
+ TSymbolUniqueId(3704);
+ static constexpr const TSymbolUniqueId textureProj_SamplerExternal2DY2YEXT1_Float4 =
+ TSymbolUniqueId(3705);
+ static constexpr const TSymbolUniqueId textureProj_Sampler2DRect1_Float3 =
+ TSymbolUniqueId(3706);
+ static constexpr const TSymbolUniqueId textureProj_Sampler2DRect1_Float4 =
+ TSymbolUniqueId(3707);
+ static constexpr const TSymbolUniqueId textureLod_Sampler2D1_Float2_Float1 =
+ TSymbolUniqueId(3708);
+ static constexpr const TSymbolUniqueId textureLod_ISampler2D1_Float2_Float1 =
+ TSymbolUniqueId(3709);
+ static constexpr const TSymbolUniqueId textureLod_USampler2D1_Float2_Float1 =
+ TSymbolUniqueId(3710);
+ static constexpr const TSymbolUniqueId textureLod_Sampler3D1_Float3_Float1 =
+ TSymbolUniqueId(3711);
+ static constexpr const TSymbolUniqueId textureLod_ISampler3D1_Float3_Float1 =
+ TSymbolUniqueId(3712);
+ static constexpr const TSymbolUniqueId textureLod_USampler3D1_Float3_Float1 =
+ TSymbolUniqueId(3713);
+ static constexpr const TSymbolUniqueId textureLod_SamplerCube1_Float3_Float1 =
+ TSymbolUniqueId(3714);
+ static constexpr const TSymbolUniqueId textureLod_ISamplerCube1_Float3_Float1 =
+ TSymbolUniqueId(3715);
+ static constexpr const TSymbolUniqueId textureLod_USamplerCube1_Float3_Float1 =
+ TSymbolUniqueId(3716);
+ static constexpr const TSymbolUniqueId textureLod_Sampler2DArray1_Float3_Float1 =
+ TSymbolUniqueId(3717);
+ static constexpr const TSymbolUniqueId textureLod_ISampler2DArray1_Float3_Float1 =
+ TSymbolUniqueId(3718);
+ static constexpr const TSymbolUniqueId textureLod_USampler2DArray1_Float3_Float1 =
+ TSymbolUniqueId(3719);
+ static constexpr const TSymbolUniqueId textureLod_Sampler2DShadow1_Float3_Float1 =
+ TSymbolUniqueId(3720);
+ static constexpr const TSymbolUniqueId textureLod_SamplerCubeArray1_Float4_Float1 =
+ TSymbolUniqueId(3721);
+ static constexpr const TSymbolUniqueId textureLod_ISamplerCubeArray1_Float4_Float1 =
+ TSymbolUniqueId(3722);
+ static constexpr const TSymbolUniqueId textureLod_USamplerCubeArray1_Float4_Float1 =
+ TSymbolUniqueId(3723);
+ static constexpr const TSymbolUniqueId textureLodExt_SamplerCubeArray1_Float4_Float1 =
+ TSymbolUniqueId(3724);
+ static constexpr const TSymbolUniqueId textureLodExt_ISamplerCubeArray1_Float4_Float1 =
+ TSymbolUniqueId(3725);
+ static constexpr const TSymbolUniqueId textureLodExt_USamplerCubeArray1_Float4_Float1 =
+ TSymbolUniqueId(3726);
+ static constexpr const TSymbolUniqueId textureSize_Sampler2D1_Int1 = TSymbolUniqueId(3727);
+ static constexpr const TSymbolUniqueId textureSize_ISampler2D1_Int1 = TSymbolUniqueId(3728);
+ static constexpr const TSymbolUniqueId textureSize_USampler2D1_Int1 = TSymbolUniqueId(3729);
+ static constexpr const TSymbolUniqueId textureSize_Sampler3D1_Int1 = TSymbolUniqueId(3730);
+ static constexpr const TSymbolUniqueId textureSize_ISampler3D1_Int1 = TSymbolUniqueId(3731);
+ static constexpr const TSymbolUniqueId textureSize_USampler3D1_Int1 = TSymbolUniqueId(3732);
+ static constexpr const TSymbolUniqueId textureSize_SamplerCube1_Int1 = TSymbolUniqueId(3733);
+ static constexpr const TSymbolUniqueId textureSize_ISamplerCube1_Int1 = TSymbolUniqueId(3734);
+ static constexpr const TSymbolUniqueId textureSize_USamplerCube1_Int1 = TSymbolUniqueId(3735);
+ static constexpr const TSymbolUniqueId textureSize_Sampler2DArray1_Int1 = TSymbolUniqueId(3736);
+ static constexpr const TSymbolUniqueId textureSize_ISampler2DArray1_Int1 =
+ TSymbolUniqueId(3737);
+ static constexpr const TSymbolUniqueId textureSize_USampler2DArray1_Int1 =
+ TSymbolUniqueId(3738);
+ static constexpr const TSymbolUniqueId textureSize_Sampler2DShadow1_Int1 =
+ TSymbolUniqueId(3739);
+ static constexpr const TSymbolUniqueId textureSize_SamplerCubeShadow1_Int1 =
+ TSymbolUniqueId(3740);
+ static constexpr const TSymbolUniqueId textureSize_Sampler2DArrayShadow1_Int1 =
+ TSymbolUniqueId(3741);
+ static constexpr const TSymbolUniqueId textureSize_SamplerCubeArray1_Int1 =
+ TSymbolUniqueId(3742);
+ static constexpr const TSymbolUniqueId textureSize_ISamplerCubeArray1_Int1 =
+ TSymbolUniqueId(3743);
+ static constexpr const TSymbolUniqueId textureSize_USamplerCubeArray1_Int1 =
+ TSymbolUniqueId(3744);
+ static constexpr const TSymbolUniqueId textureSize_SamplerCubeArrayShadow1_Int1 =
+ TSymbolUniqueId(3745);
+ static constexpr const TSymbolUniqueId textureSizeExt_SamplerCubeArray1_Int1 =
+ TSymbolUniqueId(3746);
+ static constexpr const TSymbolUniqueId textureSizeExt_ISamplerCubeArray1_Int1 =
+ TSymbolUniqueId(3747);
+ static constexpr const TSymbolUniqueId textureSizeExt_USamplerCubeArray1_Int1 =
+ TSymbolUniqueId(3748);
+ static constexpr const TSymbolUniqueId textureSizeExt_SamplerCubeArrayShadow1_Int1 =
+ TSymbolUniqueId(3749);
+ static constexpr const TSymbolUniqueId textureSize_SamplerBuffer1 = TSymbolUniqueId(3750);
+ static constexpr const TSymbolUniqueId pt00j = TSymbolUniqueId(3751);
+ static constexpr const TSymbolUniqueId textureSize_ISamplerBuffer1 = TSymbolUniqueId(3752);
+ static constexpr const TSymbolUniqueId pt00r = TSymbolUniqueId(3753);
+ static constexpr const TSymbolUniqueId textureSize_USamplerBuffer1 = TSymbolUniqueId(3754);
+ static constexpr const TSymbolUniqueId pt00w = TSymbolUniqueId(3755);
+ static constexpr const TSymbolUniqueId textureSizeExt_SamplerBuffer1 = TSymbolUniqueId(3756);
+ static constexpr const TSymbolUniqueId textureSizeExt_ISamplerBuffer1 = TSymbolUniqueId(3757);
+ static constexpr const TSymbolUniqueId textureSizeExt_USamplerBuffer1 = TSymbolUniqueId(3758);
+ static constexpr const TSymbolUniqueId textureSize_Sampler2DMS1 = TSymbolUniqueId(3759);
+ static constexpr const TSymbolUniqueId pt00P = TSymbolUniqueId(3760);
+ static constexpr const TSymbolUniqueId textureSize_ISampler2DMS1 = TSymbolUniqueId(3761);
+ static constexpr const TSymbolUniqueId pt00V = TSymbolUniqueId(3762);
+ static constexpr const TSymbolUniqueId textureSize_USampler2DMS1 = TSymbolUniqueId(3763);
+ static constexpr const TSymbolUniqueId pt00b = TSymbolUniqueId(3764);
+ static constexpr const TSymbolUniqueId textureSizeExt_Sampler2DMS1 = TSymbolUniqueId(3765);
+ static constexpr const TSymbolUniqueId textureSizeExt_ISampler2DMS1 = TSymbolUniqueId(3766);
+ static constexpr const TSymbolUniqueId textureSizeExt_USampler2DMS1 = TSymbolUniqueId(3767);
+ static constexpr const TSymbolUniqueId textureSize_Sampler2DMSArray1 = TSymbolUniqueId(3768);
+ static constexpr const TSymbolUniqueId pt00Q = TSymbolUniqueId(3769);
+ static constexpr const TSymbolUniqueId textureSize_ISampler2DMSArray1 = TSymbolUniqueId(3770);
+ static constexpr const TSymbolUniqueId pt00W = TSymbolUniqueId(3771);
+ static constexpr const TSymbolUniqueId textureSize_USampler2DMSArray1 = TSymbolUniqueId(3772);
+ static constexpr const TSymbolUniqueId pt00c = TSymbolUniqueId(3773);
+ static constexpr const TSymbolUniqueId textureSizeExt_Sampler2DMSArray1 = TSymbolUniqueId(3774);
+ static constexpr const TSymbolUniqueId textureSizeExt_ISampler2DMSArray1 =
+ TSymbolUniqueId(3775);
+ static constexpr const TSymbolUniqueId textureSizeExt_USampler2DMSArray1 =
+ TSymbolUniqueId(3776);
+ static constexpr const TSymbolUniqueId textureSize_SamplerExternalOES1_Int1 =
+ TSymbolUniqueId(3777);
+ static constexpr const TSymbolUniqueId textureSize_SamplerExternal2DY2YEXT1_Int1 =
+ TSymbolUniqueId(3778);
+ static constexpr const TSymbolUniqueId textureProjLod_Sampler2D1_Float3_Float1 =
+ TSymbolUniqueId(3779);
+ static constexpr const TSymbolUniqueId textureProjLod_ISampler2D1_Float3_Float1 =
+ TSymbolUniqueId(3780);
+ static constexpr const TSymbolUniqueId textureProjLod_USampler2D1_Float3_Float1 =
+ TSymbolUniqueId(3781);
+ static constexpr const TSymbolUniqueId textureProjLod_Sampler2D1_Float4_Float1 =
+ TSymbolUniqueId(3782);
+ static constexpr const TSymbolUniqueId textureProjLod_ISampler2D1_Float4_Float1 =
+ TSymbolUniqueId(3783);
+ static constexpr const TSymbolUniqueId textureProjLod_USampler2D1_Float4_Float1 =
+ TSymbolUniqueId(3784);
+ static constexpr const TSymbolUniqueId textureProjLod_Sampler3D1_Float4_Float1 =
+ TSymbolUniqueId(3785);
+ static constexpr const TSymbolUniqueId textureProjLod_ISampler3D1_Float4_Float1 =
+ TSymbolUniqueId(3786);
+ static constexpr const TSymbolUniqueId textureProjLod_USampler3D1_Float4_Float1 =
+ TSymbolUniqueId(3787);
+ static constexpr const TSymbolUniqueId textureProjLod_Sampler2DShadow1_Float4_Float1 =
+ TSymbolUniqueId(3788);
+ static constexpr const TSymbolUniqueId texelFetch_Sampler2D1_Int2_Int1 = TSymbolUniqueId(3789);
+ static constexpr const TSymbolUniqueId texelFetch_ISampler2D1_Int2_Int1 = TSymbolUniqueId(3790);
+ static constexpr const TSymbolUniqueId texelFetch_USampler2D1_Int2_Int1 = TSymbolUniqueId(3791);
+ static constexpr const TSymbolUniqueId texelFetch_Sampler3D1_Int3_Int1 = TSymbolUniqueId(3792);
+ static constexpr const TSymbolUniqueId texelFetch_ISampler3D1_Int3_Int1 = TSymbolUniqueId(3793);
+ static constexpr const TSymbolUniqueId texelFetch_USampler3D1_Int3_Int1 = TSymbolUniqueId(3794);
+ static constexpr const TSymbolUniqueId texelFetch_Sampler2DArray1_Int3_Int1 =
+ TSymbolUniqueId(3795);
+ static constexpr const TSymbolUniqueId texelFetch_ISampler2DArray1_Int3_Int1 =
+ TSymbolUniqueId(3796);
+ static constexpr const TSymbolUniqueId texelFetch_USampler2DArray1_Int3_Int1 =
+ TSymbolUniqueId(3797);
+ static constexpr const TSymbolUniqueId texelFetch_SamplerBuffer1_Int1 = TSymbolUniqueId(3798);
+ static constexpr const TSymbolUniqueId texelFetch_ISamplerBuffer1_Int1 = TSymbolUniqueId(3799);
+ static constexpr const TSymbolUniqueId texelFetch_USamplerBuffer1_Int1 = TSymbolUniqueId(3800);
+ static constexpr const TSymbolUniqueId texelFetchExt_SamplerBuffer1_Int1 =
+ TSymbolUniqueId(3801);
+ static constexpr const TSymbolUniqueId texelFetchExt_ISamplerBuffer1_Int1 =
+ TSymbolUniqueId(3802);
+ static constexpr const TSymbolUniqueId texelFetchExt_USamplerBuffer1_Int1 =
+ TSymbolUniqueId(3803);
+ static constexpr const TSymbolUniqueId texelFetch_Sampler2DMS1_Int2_Int1 =
+ TSymbolUniqueId(3804);
+ static constexpr const TSymbolUniqueId texelFetch_ISampler2DMS1_Int2_Int1 =
+ TSymbolUniqueId(3805);
+ static constexpr const TSymbolUniqueId texelFetch_USampler2DMS1_Int2_Int1 =
+ TSymbolUniqueId(3806);
+ static constexpr const TSymbolUniqueId texelFetchExt_Sampler2DMS1_Int2_Int1 =
+ TSymbolUniqueId(3807);
+ static constexpr const TSymbolUniqueId texelFetchExt_ISampler2DMS1_Int2_Int1 =
+ TSymbolUniqueId(3808);
+ static constexpr const TSymbolUniqueId texelFetchExt_USampler2DMS1_Int2_Int1 =
+ TSymbolUniqueId(3809);
+ static constexpr const TSymbolUniqueId texelFetch_Sampler2DMSArray1_Int3_Int1 =
+ TSymbolUniqueId(3810);
+ static constexpr const TSymbolUniqueId texelFetch_ISampler2DMSArray1_Int3_Int1 =
+ TSymbolUniqueId(3811);
+ static constexpr const TSymbolUniqueId texelFetch_USampler2DMSArray1_Int3_Int1 =
+ TSymbolUniqueId(3812);
+ static constexpr const TSymbolUniqueId texelFetchExt_Sampler2DMSArray1_Int3_Int1 =
+ TSymbolUniqueId(3813);
+ static constexpr const TSymbolUniqueId texelFetchExt_ISampler2DMSArray1_Int3_Int1 =
+ TSymbolUniqueId(3814);
+ static constexpr const TSymbolUniqueId texelFetchExt_USampler2DMSArray1_Int3_Int1 =
+ TSymbolUniqueId(3815);
+ static constexpr const TSymbolUniqueId texelFetch_SamplerExternalOES1_Int2_Int1 =
+ TSymbolUniqueId(3816);
+ static constexpr const TSymbolUniqueId texelFetch_SamplerExternal2DY2YEXT1_Int2_Int1 =
+ TSymbolUniqueId(3817);
+ static constexpr const TSymbolUniqueId textureGrad_Sampler2D1_Float2_Float2_Float2 =
+ TSymbolUniqueId(3818);
+ static constexpr const TSymbolUniqueId textureGrad_ISampler2D1_Float2_Float2_Float2 =
+ TSymbolUniqueId(3819);
+ static constexpr const TSymbolUniqueId textureGrad_USampler2D1_Float2_Float2_Float2 =
+ TSymbolUniqueId(3820);
+ static constexpr const TSymbolUniqueId textureGrad_Sampler3D1_Float3_Float3_Float3 =
+ TSymbolUniqueId(3821);
+ static constexpr const TSymbolUniqueId textureGrad_ISampler3D1_Float3_Float3_Float3 =
+ TSymbolUniqueId(3822);
+ static constexpr const TSymbolUniqueId textureGrad_USampler3D1_Float3_Float3_Float3 =
+ TSymbolUniqueId(3823);
+ static constexpr const TSymbolUniqueId textureGrad_SamplerCube1_Float3_Float3_Float3 =
+ TSymbolUniqueId(3824);
+ static constexpr const TSymbolUniqueId textureGrad_ISamplerCube1_Float3_Float3_Float3 =
+ TSymbolUniqueId(3825);
+ static constexpr const TSymbolUniqueId textureGrad_USamplerCube1_Float3_Float3_Float3 =
+ TSymbolUniqueId(3826);
+ static constexpr const TSymbolUniqueId textureGrad_Sampler2DShadow1_Float3_Float2_Float2 =
+ TSymbolUniqueId(3827);
+ static constexpr const TSymbolUniqueId textureGrad_SamplerCubeShadow1_Float4_Float3_Float3 =
+ TSymbolUniqueId(3828);
+ static constexpr const TSymbolUniqueId textureGrad_Sampler2DArray1_Float3_Float2_Float2 =
+ TSymbolUniqueId(3829);
+ static constexpr const TSymbolUniqueId textureGrad_ISampler2DArray1_Float3_Float2_Float2 =
+ TSymbolUniqueId(3830);
+ static constexpr const TSymbolUniqueId textureGrad_USampler2DArray1_Float3_Float2_Float2 =
+ TSymbolUniqueId(3831);
+ static constexpr const TSymbolUniqueId textureGrad_Sampler2DArrayShadow1_Float4_Float2_Float2 =
+ TSymbolUniqueId(3832);
+ static constexpr const TSymbolUniqueId textureGrad_SamplerCubeArray1_Float4_Float3_Float3 =
+ TSymbolUniqueId(3833);
+ static constexpr const TSymbolUniqueId textureGrad_ISamplerCubeArray1_Float4_Float3_Float3 =
+ TSymbolUniqueId(3834);
+ static constexpr const TSymbolUniqueId textureGrad_USamplerCubeArray1_Float4_Float3_Float3 =
+ TSymbolUniqueId(3835);
+ static constexpr const TSymbolUniqueId textureGradExt_SamplerCubeArray1_Float4_Float3_Float3 =
+ TSymbolUniqueId(3836);
+ static constexpr const TSymbolUniqueId textureGradExt_ISamplerCubeArray1_Float4_Float3_Float3 =
+ TSymbolUniqueId(3837);
+ static constexpr const TSymbolUniqueId textureGradExt_USamplerCubeArray1_Float4_Float3_Float3 =
+ TSymbolUniqueId(3838);
+ static constexpr const TSymbolUniqueId textureProjGrad_Sampler2D1_Float3_Float2_Float2 =
+ TSymbolUniqueId(3839);
+ static constexpr const TSymbolUniqueId textureProjGrad_ISampler2D1_Float3_Float2_Float2 =
+ TSymbolUniqueId(3840);
+ static constexpr const TSymbolUniqueId textureProjGrad_USampler2D1_Float3_Float2_Float2 =
+ TSymbolUniqueId(3841);
+ static constexpr const TSymbolUniqueId textureProjGrad_Sampler2D1_Float4_Float2_Float2 =
+ TSymbolUniqueId(3842);
+ static constexpr const TSymbolUniqueId textureProjGrad_ISampler2D1_Float4_Float2_Float2 =
+ TSymbolUniqueId(3843);
+ static constexpr const TSymbolUniqueId textureProjGrad_USampler2D1_Float4_Float2_Float2 =
+ TSymbolUniqueId(3844);
+ static constexpr const TSymbolUniqueId textureProjGrad_Sampler3D1_Float4_Float3_Float3 =
+ TSymbolUniqueId(3845);
+ static constexpr const TSymbolUniqueId textureProjGrad_ISampler3D1_Float4_Float3_Float3 =
+ TSymbolUniqueId(3846);
+ static constexpr const TSymbolUniqueId textureProjGrad_USampler3D1_Float4_Float3_Float3 =
+ TSymbolUniqueId(3847);
+ static constexpr const TSymbolUniqueId textureProjGrad_Sampler2DShadow1_Float4_Float2_Float2 =
+ TSymbolUniqueId(3848);
+ static constexpr const TSymbolUniqueId texture_Sampler2D1_Float2_Float1 = TSymbolUniqueId(3849);
+ static constexpr const TSymbolUniqueId texture_ISampler2D1_Float2_Float1 =
+ TSymbolUniqueId(3850);
+ static constexpr const TSymbolUniqueId texture_USampler2D1_Float2_Float1 =
+ TSymbolUniqueId(3851);
+ static constexpr const TSymbolUniqueId texture_Sampler3D1_Float3_Float1 = TSymbolUniqueId(3852);
+ static constexpr const TSymbolUniqueId texture_ISampler3D1_Float3_Float1 =
+ TSymbolUniqueId(3853);
+ static constexpr const TSymbolUniqueId texture_USampler3D1_Float3_Float1 =
+ TSymbolUniqueId(3854);
+ static constexpr const TSymbolUniqueId texture_SamplerCube1_Float3_Float1 =
+ TSymbolUniqueId(3855);
+ static constexpr const TSymbolUniqueId texture_ISamplerCube1_Float3_Float1 =
+ TSymbolUniqueId(3856);
+ static constexpr const TSymbolUniqueId texture_USamplerCube1_Float3_Float1 =
+ TSymbolUniqueId(3857);
+ static constexpr const TSymbolUniqueId texture_Sampler2DArray1_Float3_Float1 =
+ TSymbolUniqueId(3858);
+ static constexpr const TSymbolUniqueId texture_ISampler2DArray1_Float3_Float1 =
+ TSymbolUniqueId(3859);
+ static constexpr const TSymbolUniqueId texture_USampler2DArray1_Float3_Float1 =
+ TSymbolUniqueId(3860);
+ static constexpr const TSymbolUniqueId textureProj_Sampler2D1_Float3_Float1 =
+ TSymbolUniqueId(3861);
+ static constexpr const TSymbolUniqueId textureProj_ISampler2D1_Float3_Float1 =
+ TSymbolUniqueId(3862);
+ static constexpr const TSymbolUniqueId textureProj_USampler2D1_Float3_Float1 =
+ TSymbolUniqueId(3863);
+ static constexpr const TSymbolUniqueId textureProj_Sampler2D1_Float4_Float1 =
+ TSymbolUniqueId(3864);
+ static constexpr const TSymbolUniqueId textureProj_ISampler2D1_Float4_Float1 =
+ TSymbolUniqueId(3865);
+ static constexpr const TSymbolUniqueId textureProj_USampler2D1_Float4_Float1 =
+ TSymbolUniqueId(3866);
+ static constexpr const TSymbolUniqueId textureProj_Sampler3D1_Float4_Float1 =
+ TSymbolUniqueId(3867);
+ static constexpr const TSymbolUniqueId textureProj_ISampler3D1_Float4_Float1 =
+ TSymbolUniqueId(3868);
+ static constexpr const TSymbolUniqueId textureProj_USampler3D1_Float4_Float1 =
+ TSymbolUniqueId(3869);
+ static constexpr const TSymbolUniqueId texture_Sampler2DShadow1_Float3_Float1 =
+ TSymbolUniqueId(3870);
+ static constexpr const TSymbolUniqueId texture_SamplerCubeShadow1_Float4_Float1 =
+ TSymbolUniqueId(3871);
+ static constexpr const TSymbolUniqueId textureProj_Sampler2DShadow1_Float4_Float1 =
+ TSymbolUniqueId(3872);
+ static constexpr const TSymbolUniqueId texture_SamplerCubeArray1_Float4_Float1 =
+ TSymbolUniqueId(3873);
+ static constexpr const TSymbolUniqueId texture_ISamplerCubeArray1_Float4_Float1 =
+ TSymbolUniqueId(3874);
+ static constexpr const TSymbolUniqueId texture_USamplerCubeArray1_Float4_Float1 =
+ TSymbolUniqueId(3875);
+ static constexpr const TSymbolUniqueId textureExt_SamplerCubeArray1_Float4_Float1 =
+ TSymbolUniqueId(3876);
+ static constexpr const TSymbolUniqueId textureExt_ISamplerCubeArray1_Float4_Float1 =
+ TSymbolUniqueId(3877);
+ static constexpr const TSymbolUniqueId textureExt_USamplerCubeArray1_Float4_Float1 =
+ TSymbolUniqueId(3878);
+ static constexpr const TSymbolUniqueId texture_SamplerExternalOES1_Float2_Float1 =
+ TSymbolUniqueId(3879);
+ static constexpr const TSymbolUniqueId textureProj_SamplerExternalOES1_Float3_Float1 =
+ TSymbolUniqueId(3880);
+ static constexpr const TSymbolUniqueId textureProj_SamplerExternalOES1_Float4_Float1 =
+ TSymbolUniqueId(3881);
+ static constexpr const TSymbolUniqueId texture_SamplerExternal2DY2YEXT1_Float2_Float1 =
+ TSymbolUniqueId(3882);
+ static constexpr const TSymbolUniqueId textureProj_SamplerExternal2DY2YEXT1_Float3_Float1 =
+ TSymbolUniqueId(3883);
+ static constexpr const TSymbolUniqueId textureProj_SamplerExternal2DY2YEXT1_Float4_Float1 =
+ TSymbolUniqueId(3884);
+ static constexpr const TSymbolUniqueId textureOffset_Sampler2D1_Float2_Int2 =
+ TSymbolUniqueId(3885);
+ static constexpr const TSymbolUniqueId textureOffset_ISampler2D1_Float2_Int2 =
+ TSymbolUniqueId(3886);
+ static constexpr const TSymbolUniqueId textureOffset_USampler2D1_Float2_Int2 =
+ TSymbolUniqueId(3887);
+ static constexpr const TSymbolUniqueId textureOffset_Sampler3D1_Float3_Int3 =
+ TSymbolUniqueId(3888);
+ static constexpr const TSymbolUniqueId textureOffset_ISampler3D1_Float3_Int3 =
+ TSymbolUniqueId(3889);
+ static constexpr const TSymbolUniqueId textureOffset_USampler3D1_Float3_Int3 =
+ TSymbolUniqueId(3890);
+ static constexpr const TSymbolUniqueId textureOffset_Sampler2DShadow1_Float3_Int2 =
+ TSymbolUniqueId(3891);
+ static constexpr const TSymbolUniqueId textureOffset_Sampler2DArray1_Float3_Int2 =
+ TSymbolUniqueId(3892);
+ static constexpr const TSymbolUniqueId textureOffset_ISampler2DArray1_Float3_Int2 =
+ TSymbolUniqueId(3893);
+ static constexpr const TSymbolUniqueId textureOffset_USampler2DArray1_Float3_Int2 =
+ TSymbolUniqueId(3894);
+ static constexpr const TSymbolUniqueId textureProjOffset_Sampler2D1_Float3_Int2 =
+ TSymbolUniqueId(3895);
+ static constexpr const TSymbolUniqueId textureProjOffset_ISampler2D1_Float3_Int2 =
+ TSymbolUniqueId(3896);
+ static constexpr const TSymbolUniqueId textureProjOffset_USampler2D1_Float3_Int2 =
+ TSymbolUniqueId(3897);
+ static constexpr const TSymbolUniqueId textureProjOffset_Sampler2D1_Float4_Int2 =
+ TSymbolUniqueId(3898);
+ static constexpr const TSymbolUniqueId textureProjOffset_ISampler2D1_Float4_Int2 =
+ TSymbolUniqueId(3899);
+ static constexpr const TSymbolUniqueId textureProjOffset_USampler2D1_Float4_Int2 =
+ TSymbolUniqueId(3900);
+ static constexpr const TSymbolUniqueId textureProjOffset_Sampler3D1_Float4_Int3 =
+ TSymbolUniqueId(3901);
+ static constexpr const TSymbolUniqueId textureProjOffset_ISampler3D1_Float4_Int3 =
+ TSymbolUniqueId(3902);
+ static constexpr const TSymbolUniqueId textureProjOffset_USampler3D1_Float4_Int3 =
+ TSymbolUniqueId(3903);
+ static constexpr const TSymbolUniqueId textureProjOffset_Sampler2DShadow1_Float4_Int2 =
+ TSymbolUniqueId(3904);
+ static constexpr const TSymbolUniqueId textureLodOffset_Sampler2D1_Float2_Float1_Int2 =
+ TSymbolUniqueId(3905);
+ static constexpr const TSymbolUniqueId textureLodOffset_ISampler2D1_Float2_Float1_Int2 =
+ TSymbolUniqueId(3906);
+ static constexpr const TSymbolUniqueId textureLodOffset_USampler2D1_Float2_Float1_Int2 =
+ TSymbolUniqueId(3907);
+ static constexpr const TSymbolUniqueId textureLodOffset_Sampler3D1_Float3_Float1_Int3 =
+ TSymbolUniqueId(3908);
+ static constexpr const TSymbolUniqueId textureLodOffset_ISampler3D1_Float3_Float1_Int3 =
+ TSymbolUniqueId(3909);
+ static constexpr const TSymbolUniqueId textureLodOffset_USampler3D1_Float3_Float1_Int3 =
+ TSymbolUniqueId(3910);
+ static constexpr const TSymbolUniqueId textureLodOffset_Sampler2DShadow1_Float3_Float1_Int2 =
+ TSymbolUniqueId(3911);
+ static constexpr const TSymbolUniqueId textureLodOffset_Sampler2DArray1_Float3_Float1_Int2 =
+ TSymbolUniqueId(3912);
+ static constexpr const TSymbolUniqueId textureLodOffset_ISampler2DArray1_Float3_Float1_Int2 =
+ TSymbolUniqueId(3913);
+ static constexpr const TSymbolUniqueId textureLodOffset_USampler2DArray1_Float3_Float1_Int2 =
+ TSymbolUniqueId(3914);
+ static constexpr const TSymbolUniqueId textureProjLodOffset_Sampler2D1_Float3_Float1_Int2 =
+ TSymbolUniqueId(3915);
+ static constexpr const TSymbolUniqueId textureProjLodOffset_ISampler2D1_Float3_Float1_Int2 =
+ TSymbolUniqueId(3916);
+ static constexpr const TSymbolUniqueId textureProjLodOffset_USampler2D1_Float3_Float1_Int2 =
+ TSymbolUniqueId(3917);
+ static constexpr const TSymbolUniqueId textureProjLodOffset_Sampler2D1_Float4_Float1_Int2 =
+ TSymbolUniqueId(3918);
+ static constexpr const TSymbolUniqueId textureProjLodOffset_ISampler2D1_Float4_Float1_Int2 =
+ TSymbolUniqueId(3919);
+ static constexpr const TSymbolUniqueId textureProjLodOffset_USampler2D1_Float4_Float1_Int2 =
+ TSymbolUniqueId(3920);
+ static constexpr const TSymbolUniqueId textureProjLodOffset_Sampler3D1_Float4_Float1_Int3 =
+ TSymbolUniqueId(3921);
+ static constexpr const TSymbolUniqueId textureProjLodOffset_ISampler3D1_Float4_Float1_Int3 =
+ TSymbolUniqueId(3922);
+ static constexpr const TSymbolUniqueId textureProjLodOffset_USampler3D1_Float4_Float1_Int3 =
+ TSymbolUniqueId(3923);
+ static constexpr const TSymbolUniqueId
+ textureProjLodOffset_Sampler2DShadow1_Float4_Float1_Int2 = TSymbolUniqueId(3924);
+ static constexpr const TSymbolUniqueId texelFetchOffset_Sampler2D1_Int2_Int1_Int2 =
+ TSymbolUniqueId(3925);
+ static constexpr const TSymbolUniqueId texelFetchOffset_ISampler2D1_Int2_Int1_Int2 =
+ TSymbolUniqueId(3926);
+ static constexpr const TSymbolUniqueId texelFetchOffset_USampler2D1_Int2_Int1_Int2 =
+ TSymbolUniqueId(3927);
+ static constexpr const TSymbolUniqueId texelFetchOffset_Sampler3D1_Int3_Int1_Int3 =
+ TSymbolUniqueId(3928);
+ static constexpr const TSymbolUniqueId texelFetchOffset_ISampler3D1_Int3_Int1_Int3 =
+ TSymbolUniqueId(3929);
+ static constexpr const TSymbolUniqueId texelFetchOffset_USampler3D1_Int3_Int1_Int3 =
+ TSymbolUniqueId(3930);
+ static constexpr const TSymbolUniqueId texelFetchOffset_Sampler2DArray1_Int3_Int1_Int2 =
+ TSymbolUniqueId(3931);
+ static constexpr const TSymbolUniqueId texelFetchOffset_ISampler2DArray1_Int3_Int1_Int2 =
+ TSymbolUniqueId(3932);
+ static constexpr const TSymbolUniqueId texelFetchOffset_USampler2DArray1_Int3_Int1_Int2 =
+ TSymbolUniqueId(3933);
+ static constexpr const TSymbolUniqueId textureGradOffset_Sampler2D1_Float2_Float2_Float2_Int2 =
+ TSymbolUniqueId(3934);
+ static constexpr const TSymbolUniqueId textureGradOffset_ISampler2D1_Float2_Float2_Float2_Int2 =
+ TSymbolUniqueId(3935);
+ static constexpr const TSymbolUniqueId textureGradOffset_USampler2D1_Float2_Float2_Float2_Int2 =
+ TSymbolUniqueId(3936);
+ static constexpr const TSymbolUniqueId textureGradOffset_Sampler3D1_Float3_Float3_Float3_Int3 =
+ TSymbolUniqueId(3937);
+ static constexpr const TSymbolUniqueId textureGradOffset_ISampler3D1_Float3_Float3_Float3_Int3 =
+ TSymbolUniqueId(3938);
+ static constexpr const TSymbolUniqueId textureGradOffset_USampler3D1_Float3_Float3_Float3_Int3 =
+ TSymbolUniqueId(3939);
+ static constexpr const TSymbolUniqueId
+ textureGradOffset_Sampler2DShadow1_Float3_Float2_Float2_Int2 = TSymbolUniqueId(3940);
+ static constexpr const TSymbolUniqueId
+ textureGradOffset_Sampler2DArray1_Float3_Float2_Float2_Int2 = TSymbolUniqueId(3941);
+ static constexpr const TSymbolUniqueId
+ textureGradOffset_ISampler2DArray1_Float3_Float2_Float2_Int2 = TSymbolUniqueId(3942);
+ static constexpr const TSymbolUniqueId
+ textureGradOffset_USampler2DArray1_Float3_Float2_Float2_Int2 = TSymbolUniqueId(3943);
+ static constexpr const TSymbolUniqueId
+ textureGradOffset_Sampler2DArrayShadow1_Float4_Float2_Float2_Int2 = TSymbolUniqueId(3944);
+ static constexpr const TSymbolUniqueId
+ textureProjGradOffset_Sampler2D1_Float3_Float2_Float2_Int2 = TSymbolUniqueId(3945);
+ static constexpr const TSymbolUniqueId
+ textureProjGradOffset_ISampler2D1_Float3_Float2_Float2_Int2 = TSymbolUniqueId(3946);
+ static constexpr const TSymbolUniqueId
+ textureProjGradOffset_USampler2D1_Float3_Float2_Float2_Int2 = TSymbolUniqueId(3947);
+ static constexpr const TSymbolUniqueId
+ textureProjGradOffset_Sampler2D1_Float4_Float2_Float2_Int2 = TSymbolUniqueId(3948);
+ static constexpr const TSymbolUniqueId
+ textureProjGradOffset_ISampler2D1_Float4_Float2_Float2_Int2 = TSymbolUniqueId(3949);
+ static constexpr const TSymbolUniqueId
+ textureProjGradOffset_USampler2D1_Float4_Float2_Float2_Int2 = TSymbolUniqueId(3950);
+ static constexpr const TSymbolUniqueId
+ textureProjGradOffset_Sampler3D1_Float4_Float3_Float3_Int3 = TSymbolUniqueId(3951);
+ static constexpr const TSymbolUniqueId
+ textureProjGradOffset_ISampler3D1_Float4_Float3_Float3_Int3 = TSymbolUniqueId(3952);
+ static constexpr const TSymbolUniqueId
+ textureProjGradOffset_USampler3D1_Float4_Float3_Float3_Int3 = TSymbolUniqueId(3953);
+ static constexpr const TSymbolUniqueId
+ textureProjGradOffset_Sampler2DShadow1_Float4_Float2_Float2_Int2 = TSymbolUniqueId(3954);
+ static constexpr const TSymbolUniqueId textureOffset_Sampler2D1_Float2_Int2_Float1 =
+ TSymbolUniqueId(3955);
+ static constexpr const TSymbolUniqueId textureOffset_ISampler2D1_Float2_Int2_Float1 =
+ TSymbolUniqueId(3956);
+ static constexpr const TSymbolUniqueId textureOffset_USampler2D1_Float2_Int2_Float1 =
+ TSymbolUniqueId(3957);
+ static constexpr const TSymbolUniqueId textureOffset_Sampler3D1_Float3_Int3_Float1 =
+ TSymbolUniqueId(3958);
+ static constexpr const TSymbolUniqueId textureOffset_ISampler3D1_Float3_Int3_Float1 =
+ TSymbolUniqueId(3959);
+ static constexpr const TSymbolUniqueId textureOffset_USampler3D1_Float3_Int3_Float1 =
+ TSymbolUniqueId(3960);
+ static constexpr const TSymbolUniqueId textureOffset_Sampler2DShadow1_Float3_Int2_Float1 =
+ TSymbolUniqueId(3961);
+ static constexpr const TSymbolUniqueId textureOffset_Sampler2DArray1_Float3_Int2_Float1 =
+ TSymbolUniqueId(3962);
+ static constexpr const TSymbolUniqueId textureOffset_ISampler2DArray1_Float3_Int2_Float1 =
+ TSymbolUniqueId(3963);
+ static constexpr const TSymbolUniqueId textureOffset_USampler2DArray1_Float3_Int2_Float1 =
+ TSymbolUniqueId(3964);
+ static constexpr const TSymbolUniqueId textureProjOffset_Sampler2D1_Float3_Int2_Float1 =
+ TSymbolUniqueId(3965);
+ static constexpr const TSymbolUniqueId textureProjOffset_ISampler2D1_Float3_Int2_Float1 =
+ TSymbolUniqueId(3966);
+ static constexpr const TSymbolUniqueId textureProjOffset_USampler2D1_Float3_Int2_Float1 =
+ TSymbolUniqueId(3967);
+ static constexpr const TSymbolUniqueId textureProjOffset_Sampler2D1_Float4_Int2_Float1 =
+ TSymbolUniqueId(3968);
+ static constexpr const TSymbolUniqueId textureProjOffset_ISampler2D1_Float4_Int2_Float1 =
+ TSymbolUniqueId(3969);
+ static constexpr const TSymbolUniqueId textureProjOffset_USampler2D1_Float4_Int2_Float1 =
+ TSymbolUniqueId(3970);
+ static constexpr const TSymbolUniqueId textureProjOffset_Sampler3D1_Float4_Int3_Float1 =
+ TSymbolUniqueId(3971);
+ static constexpr const TSymbolUniqueId textureProjOffset_ISampler3D1_Float4_Int3_Float1 =
+ TSymbolUniqueId(3972);
+ static constexpr const TSymbolUniqueId textureProjOffset_USampler3D1_Float4_Int3_Float1 =
+ TSymbolUniqueId(3973);
+ static constexpr const TSymbolUniqueId textureProjOffset_Sampler2DShadow1_Float4_Int2_Float1 =
+ TSymbolUniqueId(3974);
+ static constexpr const TSymbolUniqueId textureGather_Sampler2D1_Float2 = TSymbolUniqueId(3975);
+ static constexpr const TSymbolUniqueId textureGather_ISampler2D1_Float2 = TSymbolUniqueId(3976);
+ static constexpr const TSymbolUniqueId textureGather_USampler2D1_Float2 = TSymbolUniqueId(3977);
+ static constexpr const TSymbolUniqueId textureGather_Sampler2D1_Float2_Int1 =
+ TSymbolUniqueId(3978);
+ static constexpr const TSymbolUniqueId textureGather_ISampler2D1_Float2_Int1 =
+ TSymbolUniqueId(3979);
+ static constexpr const TSymbolUniqueId textureGather_USampler2D1_Float2_Int1 =
+ TSymbolUniqueId(3980);
+ static constexpr const TSymbolUniqueId textureGather_Sampler2DArray1_Float3 =
+ TSymbolUniqueId(3981);
+ static constexpr const TSymbolUniqueId textureGather_ISampler2DArray1_Float3 =
+ TSymbolUniqueId(3982);
+ static constexpr const TSymbolUniqueId textureGather_USampler2DArray1_Float3 =
+ TSymbolUniqueId(3983);
+ static constexpr const TSymbolUniqueId textureGather_Sampler2DArray1_Float3_Int1 =
+ TSymbolUniqueId(3984);
+ static constexpr const TSymbolUniqueId textureGather_ISampler2DArray1_Float3_Int1 =
+ TSymbolUniqueId(3985);
+ static constexpr const TSymbolUniqueId textureGather_USampler2DArray1_Float3_Int1 =
+ TSymbolUniqueId(3986);
+ static constexpr const TSymbolUniqueId textureGather_SamplerCube1_Float3 =
+ TSymbolUniqueId(3987);
+ static constexpr const TSymbolUniqueId textureGather_ISamplerCube1_Float3 =
+ TSymbolUniqueId(3988);
+ static constexpr const TSymbolUniqueId textureGather_USamplerCube1_Float3 =
+ TSymbolUniqueId(3989);
+ static constexpr const TSymbolUniqueId textureGather_SamplerCube1_Float3_Int1 =
+ TSymbolUniqueId(3990);
+ static constexpr const TSymbolUniqueId textureGather_ISamplerCube1_Float3_Int1 =
+ TSymbolUniqueId(3991);
+ static constexpr const TSymbolUniqueId textureGather_USamplerCube1_Float3_Int1 =
+ TSymbolUniqueId(3992);
+ static constexpr const TSymbolUniqueId textureGather_SamplerCubeArray1_Float4 =
+ TSymbolUniqueId(3993);
+ static constexpr const TSymbolUniqueId textureGather_ISamplerCubeArray1_Float4 =
+ TSymbolUniqueId(3994);
+ static constexpr const TSymbolUniqueId textureGather_USamplerCubeArray1_Float4 =
+ TSymbolUniqueId(3995);
+ static constexpr const TSymbolUniqueId textureGather_SamplerCubeArray1_Float4_Int1 =
+ TSymbolUniqueId(3996);
+ static constexpr const TSymbolUniqueId textureGather_ISamplerCubeArray1_Float4_Int1 =
+ TSymbolUniqueId(3997);
+ static constexpr const TSymbolUniqueId textureGather_USamplerCubeArray1_Float4_Int1 =
+ TSymbolUniqueId(3998);
+ static constexpr const TSymbolUniqueId textureGather_SamplerCubeArrayShadow1_Float4_Float1 =
+ TSymbolUniqueId(3999);
+ static constexpr const TSymbolUniqueId textureGatherExt_SamplerCubeArray1_Float4 =
+ TSymbolUniqueId(4000);
+ static constexpr const TSymbolUniqueId textureGatherExt_ISamplerCubeArray1_Float4 =
+ TSymbolUniqueId(4001);
+ static constexpr const TSymbolUniqueId textureGatherExt_USamplerCubeArray1_Float4 =
+ TSymbolUniqueId(4002);
+ static constexpr const TSymbolUniqueId textureGatherExt_SamplerCubeArray1_Float4_Int1 =
+ TSymbolUniqueId(4003);
+ static constexpr const TSymbolUniqueId textureGatherExt_ISamplerCubeArray1_Float4_Int1 =
+ TSymbolUniqueId(4004);
+ static constexpr const TSymbolUniqueId textureGatherExt_USamplerCubeArray1_Float4_Int1 =
+ TSymbolUniqueId(4005);
+ static constexpr const TSymbolUniqueId textureGatherExt_SamplerCubeArrayShadow1_Float4_Float1 =
+ TSymbolUniqueId(4006);
+ static constexpr const TSymbolUniqueId textureGather_Sampler2DShadow1_Float2 =
+ TSymbolUniqueId(4007);
+ static constexpr const TSymbolUniqueId textureGather_Sampler2DShadow1_Float2_Float1 =
+ TSymbolUniqueId(4008);
+ static constexpr const TSymbolUniqueId textureGather_Sampler2DArrayShadow1_Float3 =
+ TSymbolUniqueId(4009);
+ static constexpr const TSymbolUniqueId textureGather_Sampler2DArrayShadow1_Float3_Float1 =
+ TSymbolUniqueId(4010);
+ static constexpr const TSymbolUniqueId textureGather_SamplerCubeShadow1_Float3 =
+ TSymbolUniqueId(4011);
+ static constexpr const TSymbolUniqueId textureGather_SamplerCubeShadow1_Float3_Float1 =
+ TSymbolUniqueId(4012);
+ static constexpr const TSymbolUniqueId textureGatherOffset_Sampler2D1_Float2_Int2 =
+ TSymbolUniqueId(4013);
+ static constexpr const TSymbolUniqueId textureGatherOffset_ISampler2D1_Float2_Int2 =
+ TSymbolUniqueId(4014);
+ static constexpr const TSymbolUniqueId textureGatherOffset_USampler2D1_Float2_Int2 =
+ TSymbolUniqueId(4015);
+ static constexpr const TSymbolUniqueId textureGatherOffset_Sampler2DArray1_Float3_Int2 =
+ TSymbolUniqueId(4016);
+ static constexpr const TSymbolUniqueId textureGatherOffset_ISampler2DArray1_Float3_Int2 =
+ TSymbolUniqueId(4017);
+ static constexpr const TSymbolUniqueId textureGatherOffset_USampler2DArray1_Float3_Int2 =
+ TSymbolUniqueId(4018);
+ static constexpr const TSymbolUniqueId textureGatherOffset_Sampler2DShadow1_Float2_Float1_Int2 =
+ TSymbolUniqueId(4019);
+ static constexpr const TSymbolUniqueId
+ textureGatherOffset_Sampler2DArrayShadow1_Float3_Float1_Int2 = TSymbolUniqueId(4020);
+ static constexpr const TSymbolUniqueId textureGatherOffset_Sampler2D1_Float2_Int2_Int1 =
+ TSymbolUniqueId(4021);
+ static constexpr const TSymbolUniqueId textureGatherOffset_ISampler2D1_Float2_Int2_Int1 =
+ TSymbolUniqueId(4022);
+ static constexpr const TSymbolUniqueId textureGatherOffset_USampler2D1_Float2_Int2_Int1 =
+ TSymbolUniqueId(4023);
+ static constexpr const TSymbolUniqueId textureGatherOffset_Sampler2DArray1_Float3_Int2_Int1 =
+ TSymbolUniqueId(4024);
+ static constexpr const TSymbolUniqueId textureGatherOffset_ISampler2DArray1_Float3_Int2_Int1 =
+ TSymbolUniqueId(4025);
+ static constexpr const TSymbolUniqueId textureGatherOffset_USampler2DArray1_Float3_Int2_Int1 =
+ TSymbolUniqueId(4026);
+ static constexpr const TSymbolUniqueId textureGatherOffsets_Sampler2D1_Float2_4xInt2 =
+ TSymbolUniqueId(4027);
+ static constexpr const TSymbolUniqueId pt10Dx4 = TSymbolUniqueId(4028);
+ static constexpr const TSymbolUniqueId textureGatherOffsets_ISampler2D1_Float2_4xInt2 =
+ TSymbolUniqueId(4029);
+ static constexpr const TSymbolUniqueId textureGatherOffsets_USampler2D1_Float2_4xInt2 =
+ TSymbolUniqueId(4030);
+ static constexpr const TSymbolUniqueId textureGatherOffsets_Sampler2DArray1_Float3_4xInt2 =
+ TSymbolUniqueId(4031);
+ static constexpr const TSymbolUniqueId textureGatherOffsets_ISampler2DArray1_Float3_4xInt2 =
+ TSymbolUniqueId(4032);
+ static constexpr const TSymbolUniqueId textureGatherOffsets_USampler2DArray1_Float3_4xInt2 =
+ TSymbolUniqueId(4033);
+ static constexpr const TSymbolUniqueId
+ textureGatherOffsets_Sampler2DShadow1_Float2_Float1_4xInt2 = TSymbolUniqueId(4034);
+ static constexpr const TSymbolUniqueId
+ textureGatherOffsets_Sampler2DArrayShadow1_Float3_Float1_4xInt2 = TSymbolUniqueId(4035);
+ static constexpr const TSymbolUniqueId textureGatherOffsetsExt_Sampler2D1_Float2_4xInt2 =
+ TSymbolUniqueId(4036);
+ static constexpr const TSymbolUniqueId textureGatherOffsetsExt_ISampler2D1_Float2_4xInt2 =
+ TSymbolUniqueId(4037);
+ static constexpr const TSymbolUniqueId textureGatherOffsetsExt_USampler2D1_Float2_4xInt2 =
+ TSymbolUniqueId(4038);
+ static constexpr const TSymbolUniqueId textureGatherOffsetsExt_Sampler2DArray1_Float3_4xInt2 =
+ TSymbolUniqueId(4039);
+ static constexpr const TSymbolUniqueId textureGatherOffsetsExt_ISampler2DArray1_Float3_4xInt2 =
+ TSymbolUniqueId(4040);
+ static constexpr const TSymbolUniqueId textureGatherOffsetsExt_USampler2DArray1_Float3_4xInt2 =
+ TSymbolUniqueId(4041);
+ static constexpr const TSymbolUniqueId
+ textureGatherOffsetsExt_Sampler2DShadow1_Float2_Float1_4xInt2 = TSymbolUniqueId(4042);
+ static constexpr const TSymbolUniqueId
+ textureGatherOffsetsExt_Sampler2DArrayShadow1_Float3_Float1_4xInt2 = TSymbolUniqueId(4043);
+ static constexpr const TSymbolUniqueId textureGatherOffsets_Sampler2D1_Float2_4xInt2_Int1 =
+ TSymbolUniqueId(4044);
+ static constexpr const TSymbolUniqueId textureGatherOffsets_ISampler2D1_Float2_4xInt2_Int1 =
+ TSymbolUniqueId(4045);
+ static constexpr const TSymbolUniqueId textureGatherOffsets_USampler2D1_Float2_4xInt2_Int1 =
+ TSymbolUniqueId(4046);
+ static constexpr const TSymbolUniqueId textureGatherOffsets_Sampler2DArray1_Float3_4xInt2_Int1 =
+ TSymbolUniqueId(4047);
+ static constexpr const TSymbolUniqueId
+ textureGatherOffsets_ISampler2DArray1_Float3_4xInt2_Int1 = TSymbolUniqueId(4048);
+ static constexpr const TSymbolUniqueId
+ textureGatherOffsets_USampler2DArray1_Float3_4xInt2_Int1 = TSymbolUniqueId(4049);
+ static constexpr const TSymbolUniqueId textureGatherOffsetsExt_Sampler2D1_Float2_4xInt2_Int1 =
+ TSymbolUniqueId(4050);
+ static constexpr const TSymbolUniqueId textureGatherOffsetsExt_ISampler2D1_Float2_4xInt2_Int1 =
+ TSymbolUniqueId(4051);
+ static constexpr const TSymbolUniqueId textureGatherOffsetsExt_USampler2D1_Float2_4xInt2_Int1 =
+ TSymbolUniqueId(4052);
+ static constexpr const TSymbolUniqueId
+ textureGatherOffsetsExt_Sampler2DArray1_Float3_4xInt2_Int1 = TSymbolUniqueId(4053);
+ static constexpr const TSymbolUniqueId
+ textureGatherOffsetsExt_ISampler2DArray1_Float3_4xInt2_Int1 = TSymbolUniqueId(4054);
+ static constexpr const TSymbolUniqueId
+ textureGatherOffsetsExt_USampler2DArray1_Float3_4xInt2_Int1 = TSymbolUniqueId(4055);
+ static constexpr const TSymbolUniqueId rgb_2_yuv_Float3_YuvCscStandardEXT1 =
+ TSymbolUniqueId(4056);
+ static constexpr const TSymbolUniqueId pt00H = TSymbolUniqueId(4057);
+ static constexpr const TSymbolUniqueId yuv_2_rgb_Float3_YuvCscStandardEXT1 =
+ TSymbolUniqueId(4058);
+ static constexpr const TSymbolUniqueId dFdxExt_Float1 = TSymbolUniqueId(4059);
+ static constexpr const TSymbolUniqueId dFdxExt_Float2 = TSymbolUniqueId(4060);
+ static constexpr const TSymbolUniqueId dFdxExt_Float3 = TSymbolUniqueId(4061);
+ static constexpr const TSymbolUniqueId dFdxExt_Float4 = TSymbolUniqueId(4062);
+ static constexpr const TSymbolUniqueId dFdyExt_Float1 = TSymbolUniqueId(4063);
+ static constexpr const TSymbolUniqueId dFdyExt_Float2 = TSymbolUniqueId(4064);
+ static constexpr const TSymbolUniqueId dFdyExt_Float3 = TSymbolUniqueId(4065);
+ static constexpr const TSymbolUniqueId dFdyExt_Float4 = TSymbolUniqueId(4066);
+ static constexpr const TSymbolUniqueId fwidthExt_Float1 = TSymbolUniqueId(4067);
+ static constexpr const TSymbolUniqueId fwidthExt_Float2 = TSymbolUniqueId(4068);
+ static constexpr const TSymbolUniqueId fwidthExt_Float3 = TSymbolUniqueId(4069);
+ static constexpr const TSymbolUniqueId fwidthExt_Float4 = TSymbolUniqueId(4070);
+ static constexpr const TSymbolUniqueId dFdx_Float1 = TSymbolUniqueId(4071);
+ static constexpr const TSymbolUniqueId dFdx_Float2 = TSymbolUniqueId(4072);
+ static constexpr const TSymbolUniqueId dFdx_Float3 = TSymbolUniqueId(4073);
+ static constexpr const TSymbolUniqueId dFdx_Float4 = TSymbolUniqueId(4074);
+ static constexpr const TSymbolUniqueId dFdy_Float1 = TSymbolUniqueId(4075);
+ static constexpr const TSymbolUniqueId dFdy_Float2 = TSymbolUniqueId(4076);
+ static constexpr const TSymbolUniqueId dFdy_Float3 = TSymbolUniqueId(4077);
+ static constexpr const TSymbolUniqueId dFdy_Float4 = TSymbolUniqueId(4078);
+ static constexpr const TSymbolUniqueId fwidth_Float1 = TSymbolUniqueId(4079);
+ static constexpr const TSymbolUniqueId fwidth_Float2 = TSymbolUniqueId(4080);
+ static constexpr const TSymbolUniqueId fwidth_Float3 = TSymbolUniqueId(4081);
+ static constexpr const TSymbolUniqueId fwidth_Float4 = TSymbolUniqueId(4082);
+ static constexpr const TSymbolUniqueId interpolateAtCentroid_Float1 = TSymbolUniqueId(4083);
+ static constexpr const TSymbolUniqueId interpolateAtCentroid_Float2 = TSymbolUniqueId(4084);
+ static constexpr const TSymbolUniqueId interpolateAtCentroid_Float3 = TSymbolUniqueId(4085);
+ static constexpr const TSymbolUniqueId interpolateAtCentroid_Float4 = TSymbolUniqueId(4086);
+ static constexpr const TSymbolUniqueId interpolateAtSample_Float1_Int1 = TSymbolUniqueId(4087);
+ static constexpr const TSymbolUniqueId interpolateAtSample_Float2_Int1 = TSymbolUniqueId(4088);
+ static constexpr const TSymbolUniqueId interpolateAtSample_Float3_Int1 = TSymbolUniqueId(4089);
+ static constexpr const TSymbolUniqueId interpolateAtSample_Float4_Int1 = TSymbolUniqueId(4090);
+ static constexpr const TSymbolUniqueId interpolateAtOffset_Float1_Float2 =
+ TSymbolUniqueId(4091);
+ static constexpr const TSymbolUniqueId interpolateAtOffset_Float2_Float2 =
+ TSymbolUniqueId(4092);
+ static constexpr const TSymbolUniqueId interpolateAtOffset_Float3_Float2 =
+ TSymbolUniqueId(4093);
+ static constexpr const TSymbolUniqueId interpolateAtOffset_Float4_Float2 =
+ TSymbolUniqueId(4094);
+ static constexpr const TSymbolUniqueId interpolateAtCentroidExt_Float1 = TSymbolUniqueId(4095);
+ static constexpr const TSymbolUniqueId interpolateAtCentroidExt_Float2 = TSymbolUniqueId(4096);
+ static constexpr const TSymbolUniqueId interpolateAtCentroidExt_Float3 = TSymbolUniqueId(4097);
+ static constexpr const TSymbolUniqueId interpolateAtCentroidExt_Float4 = TSymbolUniqueId(4098);
+ static constexpr const TSymbolUniqueId interpolateAtSampleExt_Float1_Int1 =
+ TSymbolUniqueId(4099);
+ static constexpr const TSymbolUniqueId interpolateAtSampleExt_Float2_Int1 =
+ TSymbolUniqueId(4100);
+ static constexpr const TSymbolUniqueId interpolateAtSampleExt_Float3_Int1 =
+ TSymbolUniqueId(4101);
+ static constexpr const TSymbolUniqueId interpolateAtSampleExt_Float4_Int1 =
+ TSymbolUniqueId(4102);
+ static constexpr const TSymbolUniqueId interpolateAtOffsetExt_Float1_Float2 =
+ TSymbolUniqueId(4103);
+ static constexpr const TSymbolUniqueId interpolateAtOffsetExt_Float2_Float2 =
+ TSymbolUniqueId(4104);
+ static constexpr const TSymbolUniqueId interpolateAtOffsetExt_Float3_Float2 =
+ TSymbolUniqueId(4105);
+ static constexpr const TSymbolUniqueId interpolateAtOffsetExt_Float4_Float2 =
+ TSymbolUniqueId(4106);
+ static constexpr const TSymbolUniqueId atomicCounter_AtomicCounter1 = TSymbolUniqueId(4107);
+ static constexpr const TSymbolUniqueId pt00G = TSymbolUniqueId(4108);
+ static constexpr const TSymbolUniqueId atomicCounterIncrement_AtomicCounter1 =
+ TSymbolUniqueId(4109);
+ static constexpr const TSymbolUniqueId atomicCounterDecrement_AtomicCounter1 =
+ TSymbolUniqueId(4110);
+ static constexpr const TSymbolUniqueId atomicAdd_UInt1_UInt1 = TSymbolUniqueId(4111);
+ static constexpr const TSymbolUniqueId pt_io_00E = TSymbolUniqueId(4112);
+ static constexpr const TSymbolUniqueId atomicAdd_Int1_Int1 = TSymbolUniqueId(4113);
+ static constexpr const TSymbolUniqueId pt_io_00D = TSymbolUniqueId(4114);
+ static constexpr const TSymbolUniqueId atomicMin_UInt1_UInt1 = TSymbolUniqueId(4115);
+ static constexpr const TSymbolUniqueId atomicMin_Int1_Int1 = TSymbolUniqueId(4116);
+ static constexpr const TSymbolUniqueId atomicMax_UInt1_UInt1 = TSymbolUniqueId(4117);
+ static constexpr const TSymbolUniqueId atomicMax_Int1_Int1 = TSymbolUniqueId(4118);
+ static constexpr const TSymbolUniqueId atomicAnd_UInt1_UInt1 = TSymbolUniqueId(4119);
+ static constexpr const TSymbolUniqueId atomicAnd_Int1_Int1 = TSymbolUniqueId(4120);
+ static constexpr const TSymbolUniqueId atomicOr_UInt1_UInt1 = TSymbolUniqueId(4121);
+ static constexpr const TSymbolUniqueId atomicOr_Int1_Int1 = TSymbolUniqueId(4122);
+ static constexpr const TSymbolUniqueId atomicXor_UInt1_UInt1 = TSymbolUniqueId(4123);
+ static constexpr const TSymbolUniqueId atomicXor_Int1_Int1 = TSymbolUniqueId(4124);
+ static constexpr const TSymbolUniqueId atomicExchange_UInt1_UInt1 = TSymbolUniqueId(4125);
+ static constexpr const TSymbolUniqueId atomicExchange_Int1_Int1 = TSymbolUniqueId(4126);
+ static constexpr const TSymbolUniqueId atomicCompSwap_UInt1_UInt1_UInt1 = TSymbolUniqueId(4127);
+ static constexpr const TSymbolUniqueId atomicCompSwap_Int1_Int1_Int1 = TSymbolUniqueId(4128);
+ static constexpr const TSymbolUniqueId imageSize_Image2D1 = TSymbolUniqueId(4129);
+ static constexpr const TSymbolUniqueId pt00z = TSymbolUniqueId(4130);
+ static constexpr const TSymbolUniqueId imageSize_IImage2D1 = TSymbolUniqueId(4131);
+ static constexpr const TSymbolUniqueId pt01K = TSymbolUniqueId(4132);
+ static constexpr const TSymbolUniqueId imageSize_UImage2D1 = TSymbolUniqueId(4133);
+ static constexpr const TSymbolUniqueId pt01V = TSymbolUniqueId(4134);
+ static constexpr const TSymbolUniqueId imageSize_Image3D1 = TSymbolUniqueId(4135);
+ static constexpr const TSymbolUniqueId pt01A = TSymbolUniqueId(4136);
+ static constexpr const TSymbolUniqueId imageSize_IImage3D1 = TSymbolUniqueId(4137);
+ static constexpr const TSymbolUniqueId pt01L = TSymbolUniqueId(4138);
+ static constexpr const TSymbolUniqueId imageSize_UImage3D1 = TSymbolUniqueId(4139);
+ static constexpr const TSymbolUniqueId pt01W = TSymbolUniqueId(4140);
+ static constexpr const TSymbolUniqueId imageSize_Image2DArray1 = TSymbolUniqueId(4141);
+ static constexpr const TSymbolUniqueId pt01B = TSymbolUniqueId(4142);
+ static constexpr const TSymbolUniqueId imageSize_IImage2DArray1 = TSymbolUniqueId(4143);
+ static constexpr const TSymbolUniqueId pt01M = TSymbolUniqueId(4144);
+ static constexpr const TSymbolUniqueId imageSize_UImage2DArray1 = TSymbolUniqueId(4145);
+ static constexpr const TSymbolUniqueId pt01X = TSymbolUniqueId(4146);
+ static constexpr const TSymbolUniqueId imageSize_ImageCube1 = TSymbolUniqueId(4147);
+ static constexpr const TSymbolUniqueId pt01C = TSymbolUniqueId(4148);
+ static constexpr const TSymbolUniqueId imageSize_IImageCube1 = TSymbolUniqueId(4149);
+ static constexpr const TSymbolUniqueId pt01N = TSymbolUniqueId(4150);
+ static constexpr const TSymbolUniqueId imageSize_UImageCube1 = TSymbolUniqueId(4151);
+ static constexpr const TSymbolUniqueId pt01Y = TSymbolUniqueId(4152);
+ static constexpr const TSymbolUniqueId imageSize_ImageCubeArray1 = TSymbolUniqueId(4153);
+ static constexpr const TSymbolUniqueId pt01H = TSymbolUniqueId(4154);
+ static constexpr const TSymbolUniqueId imageSize_IImageCubeArray1 = TSymbolUniqueId(4155);
+ static constexpr const TSymbolUniqueId pt01S = TSymbolUniqueId(4156);
+ static constexpr const TSymbolUniqueId imageSize_UImageCubeArray1 = TSymbolUniqueId(4157);
+ static constexpr const TSymbolUniqueId pt01d = TSymbolUniqueId(4158);
+ static constexpr const TSymbolUniqueId imageSizeExt_ImageCubeArray1 = TSymbolUniqueId(4159);
+ static constexpr const TSymbolUniqueId imageSizeExt_IImageCubeArray1 = TSymbolUniqueId(4160);
+ static constexpr const TSymbolUniqueId imageSizeExt_UImageCubeArray1 = TSymbolUniqueId(4161);
+ static constexpr const TSymbolUniqueId imageSize_ImageBuffer1 = TSymbolUniqueId(4162);
+ static constexpr const TSymbolUniqueId pt01J = TSymbolUniqueId(4163);
+ static constexpr const TSymbolUniqueId imageSize_IImageBuffer1 = TSymbolUniqueId(4164);
+ static constexpr const TSymbolUniqueId pt01U = TSymbolUniqueId(4165);
+ static constexpr const TSymbolUniqueId imageSize_UImageBuffer1 = TSymbolUniqueId(4166);
+ static constexpr const TSymbolUniqueId pt01f = TSymbolUniqueId(4167);
+ static constexpr const TSymbolUniqueId imageSizeExt_ImageBuffer1 = TSymbolUniqueId(4168);
+ static constexpr const TSymbolUniqueId imageSizeExt_IImageBuffer1 = TSymbolUniqueId(4169);
+ static constexpr const TSymbolUniqueId imageSizeExt_UImageBuffer1 = TSymbolUniqueId(4170);
+ static constexpr const TSymbolUniqueId imageStore_Image2D1_Int2_Float4 = TSymbolUniqueId(4171);
+ static constexpr const TSymbolUniqueId imageStore_IImage2D1_Int2_Int4 = TSymbolUniqueId(4172);
+ static constexpr const TSymbolUniqueId imageStore_UImage2D1_Int2_UInt4 = TSymbolUniqueId(4173);
+ static constexpr const TSymbolUniqueId imageStore_Image3D1_Int3_Float4 = TSymbolUniqueId(4174);
+ static constexpr const TSymbolUniqueId imageStore_IImage3D1_Int3_Int4 = TSymbolUniqueId(4175);
+ static constexpr const TSymbolUniqueId imageStore_UImage3D1_Int3_UInt4 = TSymbolUniqueId(4176);
+ static constexpr const TSymbolUniqueId imageStore_Image2DArray1_Int3_Float4 =
+ TSymbolUniqueId(4177);
+ static constexpr const TSymbolUniqueId imageStore_IImage2DArray1_Int3_Int4 =
+ TSymbolUniqueId(4178);
+ static constexpr const TSymbolUniqueId imageStore_UImage2DArray1_Int3_UInt4 =
+ TSymbolUniqueId(4179);
+ static constexpr const TSymbolUniqueId imageStore_ImageCube1_Int3_Float4 =
+ TSymbolUniqueId(4180);
+ static constexpr const TSymbolUniqueId imageStore_IImageCube1_Int3_Int4 = TSymbolUniqueId(4181);
+ static constexpr const TSymbolUniqueId imageStore_UImageCube1_Int3_UInt4 =
+ TSymbolUniqueId(4182);
+ static constexpr const TSymbolUniqueId imageStore_ImageCubeArray1_Int3_Float4 =
+ TSymbolUniqueId(4183);
+ static constexpr const TSymbolUniqueId imageStore_IImageCubeArray1_Int3_Int4 =
+ TSymbolUniqueId(4184);
+ static constexpr const TSymbolUniqueId imageStore_UImageCubeArray1_Int3_UInt4 =
+ TSymbolUniqueId(4185);
+ static constexpr const TSymbolUniqueId imageStoreExt_ImageCubeArray1_Int3_Float4 =
+ TSymbolUniqueId(4186);
+ static constexpr const TSymbolUniqueId imageStoreExt_IImageCubeArray1_Int3_Int4 =
+ TSymbolUniqueId(4187);
+ static constexpr const TSymbolUniqueId imageStoreExt_UImageCubeArray1_Int3_UInt4 =
+ TSymbolUniqueId(4188);
+ static constexpr const TSymbolUniqueId imageStore_ImageBuffer1_Int1_Float4 =
+ TSymbolUniqueId(4189);
+ static constexpr const TSymbolUniqueId imageStore_IImageBuffer1_Int1_Int4 =
+ TSymbolUniqueId(4190);
+ static constexpr const TSymbolUniqueId imageStore_UImageBuffer1_Int1_UInt4 =
+ TSymbolUniqueId(4191);
+ static constexpr const TSymbolUniqueId imageStoreExt_ImageBuffer1_Int1_Float4 =
+ TSymbolUniqueId(4192);
+ static constexpr const TSymbolUniqueId imageStoreExt_IImageBuffer1_Int1_Int4 =
+ TSymbolUniqueId(4193);
+ static constexpr const TSymbolUniqueId imageStoreExt_UImageBuffer1_Int1_UInt4 =
+ TSymbolUniqueId(4194);
+ static constexpr const TSymbolUniqueId imageLoad_Image2D1_Int2 = TSymbolUniqueId(4195);
+ static constexpr const TSymbolUniqueId imageLoad_IImage2D1_Int2 = TSymbolUniqueId(4196);
+ static constexpr const TSymbolUniqueId imageLoad_UImage2D1_Int2 = TSymbolUniqueId(4197);
+ static constexpr const TSymbolUniqueId imageLoad_Image3D1_Int3 = TSymbolUniqueId(4198);
+ static constexpr const TSymbolUniqueId imageLoad_IImage3D1_Int3 = TSymbolUniqueId(4199);
+ static constexpr const TSymbolUniqueId imageLoad_UImage3D1_Int3 = TSymbolUniqueId(4200);
+ static constexpr const TSymbolUniqueId imageLoad_Image2DArray1_Int3 = TSymbolUniqueId(4201);
+ static constexpr const TSymbolUniqueId imageLoad_IImage2DArray1_Int3 = TSymbolUniqueId(4202);
+ static constexpr const TSymbolUniqueId imageLoad_UImage2DArray1_Int3 = TSymbolUniqueId(4203);
+ static constexpr const TSymbolUniqueId imageLoad_ImageCube1_Int3 = TSymbolUniqueId(4204);
+ static constexpr const TSymbolUniqueId imageLoad_IImageCube1_Int3 = TSymbolUniqueId(4205);
+ static constexpr const TSymbolUniqueId imageLoad_UImageCube1_Int3 = TSymbolUniqueId(4206);
+ static constexpr const TSymbolUniqueId imageLoad_ImageCubeArray1_Int3 = TSymbolUniqueId(4207);
+ static constexpr const TSymbolUniqueId imageLoad_IImageCubeArray1_Int3 = TSymbolUniqueId(4208);
+ static constexpr const TSymbolUniqueId imageLoad_UImageCubeArray1_Int3 = TSymbolUniqueId(4209);
+ static constexpr const TSymbolUniqueId imageLoadExt_ImageCubeArray1_Int3 =
+ TSymbolUniqueId(4210);
+ static constexpr const TSymbolUniqueId imageLoadExt_IImageCubeArray1_Int3 =
+ TSymbolUniqueId(4211);
+ static constexpr const TSymbolUniqueId imageLoadExt_UImageCubeArray1_Int3 =
+ TSymbolUniqueId(4212);
+ static constexpr const TSymbolUniqueId imageLoad_ImageBuffer1_Int1 = TSymbolUniqueId(4213);
+ static constexpr const TSymbolUniqueId imageLoad_IImageBuffer1_Int1 = TSymbolUniqueId(4214);
+ static constexpr const TSymbolUniqueId imageLoad_UImageBuffer1_Int1 = TSymbolUniqueId(4215);
+ static constexpr const TSymbolUniqueId imageLoadExt_ImageBuffer1_Int1 = TSymbolUniqueId(4216);
+ static constexpr const TSymbolUniqueId imageLoadExt_IImageBuffer1_Int1 = TSymbolUniqueId(4217);
+ static constexpr const TSymbolUniqueId imageLoadExt_UImageBuffer1_Int1 = TSymbolUniqueId(4218);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_Image2D1_Int2_UInt1 =
+ TSymbolUniqueId(4219);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_IImage2D1_Int2_UInt1 =
+ TSymbolUniqueId(4220);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_UImage2D1_Int2_UInt1 =
+ TSymbolUniqueId(4221);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_Image3D1_Int3_UInt1 =
+ TSymbolUniqueId(4222);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_IImage3D1_Int3_UInt1 =
+ TSymbolUniqueId(4223);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_UImage3D1_Int3_UInt1 =
+ TSymbolUniqueId(4224);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_ImageCube1_Int3_UInt1 =
+ TSymbolUniqueId(4225);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_IImageCube1_Int3_UInt1 =
+ TSymbolUniqueId(4226);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_UImageCube1_Int3_UInt1 =
+ TSymbolUniqueId(4227);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_ImageBuffer1_Int1_UInt1 =
+ TSymbolUniqueId(4228);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_IImageBuffer1_Int1_UInt1 =
+ TSymbolUniqueId(4229);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_UImageBuffer1_Int1_UInt1 =
+ TSymbolUniqueId(4230);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_Image2DArray1_Int3_UInt1 =
+ TSymbolUniqueId(4231);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_IImage2DArray1_Int3_UInt1 =
+ TSymbolUniqueId(4232);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_UImage2DArray1_Int3_UInt1 =
+ TSymbolUniqueId(4233);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_ImageCubeArray1_Int3_UInt1 =
+ TSymbolUniqueId(4234);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_IImageCubeArray1_Int3_UInt1 =
+ TSymbolUniqueId(4235);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_UImageCubeArray1_Int3_UInt1 =
+ TSymbolUniqueId(4236);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_Image1D1_Int1_UInt1 =
+ TSymbolUniqueId(4237);
+ static constexpr const TSymbolUniqueId pt01D = TSymbolUniqueId(4238);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_IImage1D1_Int1_UInt1 =
+ TSymbolUniqueId(4239);
+ static constexpr const TSymbolUniqueId pt01O = TSymbolUniqueId(4240);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_UImage1D1_Int1_UInt1 =
+ TSymbolUniqueId(4241);
+ static constexpr const TSymbolUniqueId pt01Z = TSymbolUniqueId(4242);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_Image1DArray1_Int2_UInt1 =
+ TSymbolUniqueId(4243);
+ static constexpr const TSymbolUniqueId pt01E = TSymbolUniqueId(4244);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_IImage1DArray1_Int2_UInt1 =
+ TSymbolUniqueId(4245);
+ static constexpr const TSymbolUniqueId pt01P = TSymbolUniqueId(4246);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_UImage1DArray1_Int2_UInt1 =
+ TSymbolUniqueId(4247);
+ static constexpr const TSymbolUniqueId pt01a = TSymbolUniqueId(4248);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_ImageRect1_Int2_UInt1 =
+ TSymbolUniqueId(4249);
+ static constexpr const TSymbolUniqueId pt01I = TSymbolUniqueId(4250);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_IImageRect1_Int2_UInt1 =
+ TSymbolUniqueId(4251);
+ static constexpr const TSymbolUniqueId pt01T = TSymbolUniqueId(4252);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_UImageRect1_Int2_UInt1 =
+ TSymbolUniqueId(4253);
+ static constexpr const TSymbolUniqueId pt01e = TSymbolUniqueId(4254);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_Image2DMS1_Int2_Int1_UInt1 =
+ TSymbolUniqueId(4255);
+ static constexpr const TSymbolUniqueId pt01F = TSymbolUniqueId(4256);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_IImage2DMS1_Int2_Int1_UInt1 =
+ TSymbolUniqueId(4257);
+ static constexpr const TSymbolUniqueId pt01Q = TSymbolUniqueId(4258);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_UImage2DMS1_Int2_Int1_UInt1 =
+ TSymbolUniqueId(4259);
+ static constexpr const TSymbolUniqueId pt01b = TSymbolUniqueId(4260);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_Image2DMSArray1_Int3_Int1_UInt1 =
+ TSymbolUniqueId(4261);
+ static constexpr const TSymbolUniqueId pt01G = TSymbolUniqueId(4262);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_IImage2DMSArray1_Int3_Int1_UInt1 =
+ TSymbolUniqueId(4263);
+ static constexpr const TSymbolUniqueId pt01R = TSymbolUniqueId(4264);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_UImage2DMSArray1_Int3_Int1_UInt1 =
+ TSymbolUniqueId(4265);
+ static constexpr const TSymbolUniqueId pt01c = TSymbolUniqueId(4266);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_Image2D1_Int2_Int1 =
+ TSymbolUniqueId(4267);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_IImage2D1_Int2_Int1 =
+ TSymbolUniqueId(4268);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_UImage2D1_Int2_Int1 =
+ TSymbolUniqueId(4269);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_Image3D1_Int3_Int1 =
+ TSymbolUniqueId(4270);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_IImage3D1_Int3_Int1 =
+ TSymbolUniqueId(4271);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_UImage3D1_Int3_Int1 =
+ TSymbolUniqueId(4272);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_ImageCube1_Int3_Int1 =
+ TSymbolUniqueId(4273);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_IImageCube1_Int3_Int1 =
+ TSymbolUniqueId(4274);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_UImageCube1_Int3_Int1 =
+ TSymbolUniqueId(4275);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_ImageBuffer1_Int1_Int1 =
+ TSymbolUniqueId(4276);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_IImageBuffer1_Int1_Int1 =
+ TSymbolUniqueId(4277);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_UImageBuffer1_Int1_Int1 =
+ TSymbolUniqueId(4278);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_Image2DArray1_Int3_Int1 =
+ TSymbolUniqueId(4279);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_IImage2DArray1_Int3_Int1 =
+ TSymbolUniqueId(4280);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_UImage2DArray1_Int3_Int1 =
+ TSymbolUniqueId(4281);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_ImageCubeArray1_Int3_Int1 =
+ TSymbolUniqueId(4282);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_IImageCubeArray1_Int3_Int1 =
+ TSymbolUniqueId(4283);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_UImageCubeArray1_Int3_Int1 =
+ TSymbolUniqueId(4284);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_Image1D1_Int1_Int1 =
+ TSymbolUniqueId(4285);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_IImage1D1_Int1_Int1 =
+ TSymbolUniqueId(4286);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_UImage1D1_Int1_Int1 =
+ TSymbolUniqueId(4287);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_Image1DArray1_Int2_Int1 =
+ TSymbolUniqueId(4288);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_IImage1DArray1_Int2_Int1 =
+ TSymbolUniqueId(4289);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_UImage1DArray1_Int2_Int1 =
+ TSymbolUniqueId(4290);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_ImageRect1_Int2_Int1 =
+ TSymbolUniqueId(4291);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_IImageRect1_Int2_Int1 =
+ TSymbolUniqueId(4292);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_UImageRect1_Int2_Int1 =
+ TSymbolUniqueId(4293);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_Image2DMS1_Int2_Int1_Int1 =
+ TSymbolUniqueId(4294);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_IImage2DMS1_Int2_Int1_Int1 =
+ TSymbolUniqueId(4295);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_UImage2DMS1_Int2_Int1_Int1 =
+ TSymbolUniqueId(4296);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_Image2DMSArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(4297);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_IImage2DMSArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(4298);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_UImage2DMSArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(4299);
+ static constexpr const TSymbolUniqueId imageAtomicMin_Image2D1_Int2_UInt1 =
+ TSymbolUniqueId(4300);
+ static constexpr const TSymbolUniqueId imageAtomicMin_IImage2D1_Int2_UInt1 =
+ TSymbolUniqueId(4301);
+ static constexpr const TSymbolUniqueId imageAtomicMin_UImage2D1_Int2_UInt1 =
+ TSymbolUniqueId(4302);
+ static constexpr const TSymbolUniqueId imageAtomicMin_Image3D1_Int3_UInt1 =
+ TSymbolUniqueId(4303);
+ static constexpr const TSymbolUniqueId imageAtomicMin_IImage3D1_Int3_UInt1 =
+ TSymbolUniqueId(4304);
+ static constexpr const TSymbolUniqueId imageAtomicMin_UImage3D1_Int3_UInt1 =
+ TSymbolUniqueId(4305);
+ static constexpr const TSymbolUniqueId imageAtomicMin_ImageCube1_Int3_UInt1 =
+ TSymbolUniqueId(4306);
+ static constexpr const TSymbolUniqueId imageAtomicMin_IImageCube1_Int3_UInt1 =
+ TSymbolUniqueId(4307);
+ static constexpr const TSymbolUniqueId imageAtomicMin_UImageCube1_Int3_UInt1 =
+ TSymbolUniqueId(4308);
+ static constexpr const TSymbolUniqueId imageAtomicMin_ImageBuffer1_Int1_UInt1 =
+ TSymbolUniqueId(4309);
+ static constexpr const TSymbolUniqueId imageAtomicMin_IImageBuffer1_Int1_UInt1 =
+ TSymbolUniqueId(4310);
+ static constexpr const TSymbolUniqueId imageAtomicMin_UImageBuffer1_Int1_UInt1 =
+ TSymbolUniqueId(4311);
+ static constexpr const TSymbolUniqueId imageAtomicMin_Image2DArray1_Int3_UInt1 =
+ TSymbolUniqueId(4312);
+ static constexpr const TSymbolUniqueId imageAtomicMin_IImage2DArray1_Int3_UInt1 =
+ TSymbolUniqueId(4313);
+ static constexpr const TSymbolUniqueId imageAtomicMin_UImage2DArray1_Int3_UInt1 =
+ TSymbolUniqueId(4314);
+ static constexpr const TSymbolUniqueId imageAtomicMin_ImageCubeArray1_Int3_UInt1 =
+ TSymbolUniqueId(4315);
+ static constexpr const TSymbolUniqueId imageAtomicMin_IImageCubeArray1_Int3_UInt1 =
+ TSymbolUniqueId(4316);
+ static constexpr const TSymbolUniqueId imageAtomicMin_UImageCubeArray1_Int3_UInt1 =
+ TSymbolUniqueId(4317);
+ static constexpr const TSymbolUniqueId imageAtomicMin_Image1D1_Int1_UInt1 =
+ TSymbolUniqueId(4318);
+ static constexpr const TSymbolUniqueId imageAtomicMin_IImage1D1_Int1_UInt1 =
+ TSymbolUniqueId(4319);
+ static constexpr const TSymbolUniqueId imageAtomicMin_UImage1D1_Int1_UInt1 =
+ TSymbolUniqueId(4320);
+ static constexpr const TSymbolUniqueId imageAtomicMin_Image1DArray1_Int2_UInt1 =
+ TSymbolUniqueId(4321);
+ static constexpr const TSymbolUniqueId imageAtomicMin_IImage1DArray1_Int2_UInt1 =
+ TSymbolUniqueId(4322);
+ static constexpr const TSymbolUniqueId imageAtomicMin_UImage1DArray1_Int2_UInt1 =
+ TSymbolUniqueId(4323);
+ static constexpr const TSymbolUniqueId imageAtomicMin_ImageRect1_Int2_UInt1 =
+ TSymbolUniqueId(4324);
+ static constexpr const TSymbolUniqueId imageAtomicMin_IImageRect1_Int2_UInt1 =
+ TSymbolUniqueId(4325);
+ static constexpr const TSymbolUniqueId imageAtomicMin_UImageRect1_Int2_UInt1 =
+ TSymbolUniqueId(4326);
+ static constexpr const TSymbolUniqueId imageAtomicMin_Image2DMS1_Int2_Int1_UInt1 =
+ TSymbolUniqueId(4327);
+ static constexpr const TSymbolUniqueId imageAtomicMin_IImage2DMS1_Int2_Int1_UInt1 =
+ TSymbolUniqueId(4328);
+ static constexpr const TSymbolUniqueId imageAtomicMin_UImage2DMS1_Int2_Int1_UInt1 =
+ TSymbolUniqueId(4329);
+ static constexpr const TSymbolUniqueId imageAtomicMin_Image2DMSArray1_Int3_Int1_UInt1 =
+ TSymbolUniqueId(4330);
+ static constexpr const TSymbolUniqueId imageAtomicMin_IImage2DMSArray1_Int3_Int1_UInt1 =
+ TSymbolUniqueId(4331);
+ static constexpr const TSymbolUniqueId imageAtomicMin_UImage2DMSArray1_Int3_Int1_UInt1 =
+ TSymbolUniqueId(4332);
+ static constexpr const TSymbolUniqueId imageAtomicMin_Image2D1_Int2_Int1 =
+ TSymbolUniqueId(4333);
+ static constexpr const TSymbolUniqueId imageAtomicMin_IImage2D1_Int2_Int1 =
+ TSymbolUniqueId(4334);
+ static constexpr const TSymbolUniqueId imageAtomicMin_UImage2D1_Int2_Int1 =
+ TSymbolUniqueId(4335);
+ static constexpr const TSymbolUniqueId imageAtomicMin_Image3D1_Int3_Int1 =
+ TSymbolUniqueId(4336);
+ static constexpr const TSymbolUniqueId imageAtomicMin_IImage3D1_Int3_Int1 =
+ TSymbolUniqueId(4337);
+ static constexpr const TSymbolUniqueId imageAtomicMin_UImage3D1_Int3_Int1 =
+ TSymbolUniqueId(4338);
+ static constexpr const TSymbolUniqueId imageAtomicMin_ImageCube1_Int3_Int1 =
+ TSymbolUniqueId(4339);
+ static constexpr const TSymbolUniqueId imageAtomicMin_IImageCube1_Int3_Int1 =
+ TSymbolUniqueId(4340);
+ static constexpr const TSymbolUniqueId imageAtomicMin_UImageCube1_Int3_Int1 =
+ TSymbolUniqueId(4341);
+ static constexpr const TSymbolUniqueId imageAtomicMin_ImageBuffer1_Int1_Int1 =
+ TSymbolUniqueId(4342);
+ static constexpr const TSymbolUniqueId imageAtomicMin_IImageBuffer1_Int1_Int1 =
+ TSymbolUniqueId(4343);
+ static constexpr const TSymbolUniqueId imageAtomicMin_UImageBuffer1_Int1_Int1 =
+ TSymbolUniqueId(4344);
+ static constexpr const TSymbolUniqueId imageAtomicMin_Image2DArray1_Int3_Int1 =
+ TSymbolUniqueId(4345);
+ static constexpr const TSymbolUniqueId imageAtomicMin_IImage2DArray1_Int3_Int1 =
+ TSymbolUniqueId(4346);
+ static constexpr const TSymbolUniqueId imageAtomicMin_UImage2DArray1_Int3_Int1 =
+ TSymbolUniqueId(4347);
+ static constexpr const TSymbolUniqueId imageAtomicMin_ImageCubeArray1_Int3_Int1 =
+ TSymbolUniqueId(4348);
+ static constexpr const TSymbolUniqueId imageAtomicMin_IImageCubeArray1_Int3_Int1 =
+ TSymbolUniqueId(4349);
+ static constexpr const TSymbolUniqueId imageAtomicMin_UImageCubeArray1_Int3_Int1 =
+ TSymbolUniqueId(4350);
+ static constexpr const TSymbolUniqueId imageAtomicMin_Image1D1_Int1_Int1 =
+ TSymbolUniqueId(4351);
+ static constexpr const TSymbolUniqueId imageAtomicMin_IImage1D1_Int1_Int1 =
+ TSymbolUniqueId(4352);
+ static constexpr const TSymbolUniqueId imageAtomicMin_UImage1D1_Int1_Int1 =
+ TSymbolUniqueId(4353);
+ static constexpr const TSymbolUniqueId imageAtomicMin_Image1DArray1_Int2_Int1 =
+ TSymbolUniqueId(4354);
+ static constexpr const TSymbolUniqueId imageAtomicMin_IImage1DArray1_Int2_Int1 =
+ TSymbolUniqueId(4355);
+ static constexpr const TSymbolUniqueId imageAtomicMin_UImage1DArray1_Int2_Int1 =
+ TSymbolUniqueId(4356);
+ static constexpr const TSymbolUniqueId imageAtomicMin_ImageRect1_Int2_Int1 =
+ TSymbolUniqueId(4357);
+ static constexpr const TSymbolUniqueId imageAtomicMin_IImageRect1_Int2_Int1 =
+ TSymbolUniqueId(4358);
+ static constexpr const TSymbolUniqueId imageAtomicMin_UImageRect1_Int2_Int1 =
+ TSymbolUniqueId(4359);
+ static constexpr const TSymbolUniqueId imageAtomicMin_Image2DMS1_Int2_Int1_Int1 =
+ TSymbolUniqueId(4360);
+ static constexpr const TSymbolUniqueId imageAtomicMin_IImage2DMS1_Int2_Int1_Int1 =
+ TSymbolUniqueId(4361);
+ static constexpr const TSymbolUniqueId imageAtomicMin_UImage2DMS1_Int2_Int1_Int1 =
+ TSymbolUniqueId(4362);
+ static constexpr const TSymbolUniqueId imageAtomicMin_Image2DMSArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(4363);
+ static constexpr const TSymbolUniqueId imageAtomicMin_IImage2DMSArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(4364);
+ static constexpr const TSymbolUniqueId imageAtomicMin_UImage2DMSArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(4365);
+ static constexpr const TSymbolUniqueId imageAtomicMax_Image2D1_Int2_UInt1 =
+ TSymbolUniqueId(4366);
+ static constexpr const TSymbolUniqueId imageAtomicMax_IImage2D1_Int2_UInt1 =
+ TSymbolUniqueId(4367);
+ static constexpr const TSymbolUniqueId imageAtomicMax_UImage2D1_Int2_UInt1 =
+ TSymbolUniqueId(4368);
+ static constexpr const TSymbolUniqueId imageAtomicMax_Image3D1_Int3_UInt1 =
+ TSymbolUniqueId(4369);
+ static constexpr const TSymbolUniqueId imageAtomicMax_IImage3D1_Int3_UInt1 =
+ TSymbolUniqueId(4370);
+ static constexpr const TSymbolUniqueId imageAtomicMax_UImage3D1_Int3_UInt1 =
+ TSymbolUniqueId(4371);
+ static constexpr const TSymbolUniqueId imageAtomicMax_ImageCube1_Int3_UInt1 =
+ TSymbolUniqueId(4372);
+ static constexpr const TSymbolUniqueId imageAtomicMax_IImageCube1_Int3_UInt1 =
+ TSymbolUniqueId(4373);
+ static constexpr const TSymbolUniqueId imageAtomicMax_UImageCube1_Int3_UInt1 =
+ TSymbolUniqueId(4374);
+ static constexpr const TSymbolUniqueId imageAtomicMax_ImageBuffer1_Int1_UInt1 =
+ TSymbolUniqueId(4375);
+ static constexpr const TSymbolUniqueId imageAtomicMax_IImageBuffer1_Int1_UInt1 =
+ TSymbolUniqueId(4376);
+ static constexpr const TSymbolUniqueId imageAtomicMax_UImageBuffer1_Int1_UInt1 =
+ TSymbolUniqueId(4377);
+ static constexpr const TSymbolUniqueId imageAtomicMax_Image2DArray1_Int3_UInt1 =
+ TSymbolUniqueId(4378);
+ static constexpr const TSymbolUniqueId imageAtomicMax_IImage2DArray1_Int3_UInt1 =
+ TSymbolUniqueId(4379);
+ static constexpr const TSymbolUniqueId imageAtomicMax_UImage2DArray1_Int3_UInt1 =
+ TSymbolUniqueId(4380);
+ static constexpr const TSymbolUniqueId imageAtomicMax_ImageCubeArray1_Int3_UInt1 =
+ TSymbolUniqueId(4381);
+ static constexpr const TSymbolUniqueId imageAtomicMax_IImageCubeArray1_Int3_UInt1 =
+ TSymbolUniqueId(4382);
+ static constexpr const TSymbolUniqueId imageAtomicMax_UImageCubeArray1_Int3_UInt1 =
+ TSymbolUniqueId(4383);
+ static constexpr const TSymbolUniqueId imageAtomicMax_Image1D1_Int1_UInt1 =
+ TSymbolUniqueId(4384);
+ static constexpr const TSymbolUniqueId imageAtomicMax_IImage1D1_Int1_UInt1 =
+ TSymbolUniqueId(4385);
+ static constexpr const TSymbolUniqueId imageAtomicMax_UImage1D1_Int1_UInt1 =
+ TSymbolUniqueId(4386);
+ static constexpr const TSymbolUniqueId imageAtomicMax_Image1DArray1_Int2_UInt1 =
+ TSymbolUniqueId(4387);
+ static constexpr const TSymbolUniqueId imageAtomicMax_IImage1DArray1_Int2_UInt1 =
+ TSymbolUniqueId(4388);
+ static constexpr const TSymbolUniqueId imageAtomicMax_UImage1DArray1_Int2_UInt1 =
+ TSymbolUniqueId(4389);
+ static constexpr const TSymbolUniqueId imageAtomicMax_ImageRect1_Int2_UInt1 =
+ TSymbolUniqueId(4390);
+ static constexpr const TSymbolUniqueId imageAtomicMax_IImageRect1_Int2_UInt1 =
+ TSymbolUniqueId(4391);
+ static constexpr const TSymbolUniqueId imageAtomicMax_UImageRect1_Int2_UInt1 =
+ TSymbolUniqueId(4392);
+ static constexpr const TSymbolUniqueId imageAtomicMax_Image2DMS1_Int2_Int1_UInt1 =
+ TSymbolUniqueId(4393);
+ static constexpr const TSymbolUniqueId imageAtomicMax_IImage2DMS1_Int2_Int1_UInt1 =
+ TSymbolUniqueId(4394);
+ static constexpr const TSymbolUniqueId imageAtomicMax_UImage2DMS1_Int2_Int1_UInt1 =
+ TSymbolUniqueId(4395);
+ static constexpr const TSymbolUniqueId imageAtomicMax_Image2DMSArray1_Int3_Int1_UInt1 =
+ TSymbolUniqueId(4396);
+ static constexpr const TSymbolUniqueId imageAtomicMax_IImage2DMSArray1_Int3_Int1_UInt1 =
+ TSymbolUniqueId(4397);
+ static constexpr const TSymbolUniqueId imageAtomicMax_UImage2DMSArray1_Int3_Int1_UInt1 =
+ TSymbolUniqueId(4398);
+ static constexpr const TSymbolUniqueId imageAtomicMax_Image2D1_Int2_Int1 =
+ TSymbolUniqueId(4399);
+ static constexpr const TSymbolUniqueId imageAtomicMax_IImage2D1_Int2_Int1 =
+ TSymbolUniqueId(4400);
+ static constexpr const TSymbolUniqueId imageAtomicMax_UImage2D1_Int2_Int1 =
+ TSymbolUniqueId(4401);
+ static constexpr const TSymbolUniqueId imageAtomicMax_Image3D1_Int3_Int1 =
+ TSymbolUniqueId(4402);
+ static constexpr const TSymbolUniqueId imageAtomicMax_IImage3D1_Int3_Int1 =
+ TSymbolUniqueId(4403);
+ static constexpr const TSymbolUniqueId imageAtomicMax_UImage3D1_Int3_Int1 =
+ TSymbolUniqueId(4404);
+ static constexpr const TSymbolUniqueId imageAtomicMax_ImageCube1_Int3_Int1 =
+ TSymbolUniqueId(4405);
+ static constexpr const TSymbolUniqueId imageAtomicMax_IImageCube1_Int3_Int1 =
+ TSymbolUniqueId(4406);
+ static constexpr const TSymbolUniqueId imageAtomicMax_UImageCube1_Int3_Int1 =
+ TSymbolUniqueId(4407);
+ static constexpr const TSymbolUniqueId imageAtomicMax_ImageBuffer1_Int1_Int1 =
+ TSymbolUniqueId(4408);
+ static constexpr const TSymbolUniqueId imageAtomicMax_IImageBuffer1_Int1_Int1 =
+ TSymbolUniqueId(4409);
+ static constexpr const TSymbolUniqueId imageAtomicMax_UImageBuffer1_Int1_Int1 =
+ TSymbolUniqueId(4410);
+ static constexpr const TSymbolUniqueId imageAtomicMax_Image2DArray1_Int3_Int1 =
+ TSymbolUniqueId(4411);
+ static constexpr const TSymbolUniqueId imageAtomicMax_IImage2DArray1_Int3_Int1 =
+ TSymbolUniqueId(4412);
+ static constexpr const TSymbolUniqueId imageAtomicMax_UImage2DArray1_Int3_Int1 =
+ TSymbolUniqueId(4413);
+ static constexpr const TSymbolUniqueId imageAtomicMax_ImageCubeArray1_Int3_Int1 =
+ TSymbolUniqueId(4414);
+ static constexpr const TSymbolUniqueId imageAtomicMax_IImageCubeArray1_Int3_Int1 =
+ TSymbolUniqueId(4415);
+ static constexpr const TSymbolUniqueId imageAtomicMax_UImageCubeArray1_Int3_Int1 =
+ TSymbolUniqueId(4416);
+ static constexpr const TSymbolUniqueId imageAtomicMax_Image1D1_Int1_Int1 =
+ TSymbolUniqueId(4417);
+ static constexpr const TSymbolUniqueId imageAtomicMax_IImage1D1_Int1_Int1 =
+ TSymbolUniqueId(4418);
+ static constexpr const TSymbolUniqueId imageAtomicMax_UImage1D1_Int1_Int1 =
+ TSymbolUniqueId(4419);
+ static constexpr const TSymbolUniqueId imageAtomicMax_Image1DArray1_Int2_Int1 =
+ TSymbolUniqueId(4420);
+ static constexpr const TSymbolUniqueId imageAtomicMax_IImage1DArray1_Int2_Int1 =
+ TSymbolUniqueId(4421);
+ static constexpr const TSymbolUniqueId imageAtomicMax_UImage1DArray1_Int2_Int1 =
+ TSymbolUniqueId(4422);
+ static constexpr const TSymbolUniqueId imageAtomicMax_ImageRect1_Int2_Int1 =
+ TSymbolUniqueId(4423);
+ static constexpr const TSymbolUniqueId imageAtomicMax_IImageRect1_Int2_Int1 =
+ TSymbolUniqueId(4424);
+ static constexpr const TSymbolUniqueId imageAtomicMax_UImageRect1_Int2_Int1 =
+ TSymbolUniqueId(4425);
+ static constexpr const TSymbolUniqueId imageAtomicMax_Image2DMS1_Int2_Int1_Int1 =
+ TSymbolUniqueId(4426);
+ static constexpr const TSymbolUniqueId imageAtomicMax_IImage2DMS1_Int2_Int1_Int1 =
+ TSymbolUniqueId(4427);
+ static constexpr const TSymbolUniqueId imageAtomicMax_UImage2DMS1_Int2_Int1_Int1 =
+ TSymbolUniqueId(4428);
+ static constexpr const TSymbolUniqueId imageAtomicMax_Image2DMSArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(4429);
+ static constexpr const TSymbolUniqueId imageAtomicMax_IImage2DMSArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(4430);
+ static constexpr const TSymbolUniqueId imageAtomicMax_UImage2DMSArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(4431);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_Image2D1_Int2_UInt1 =
+ TSymbolUniqueId(4432);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_IImage2D1_Int2_UInt1 =
+ TSymbolUniqueId(4433);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_UImage2D1_Int2_UInt1 =
+ TSymbolUniqueId(4434);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_Image3D1_Int3_UInt1 =
+ TSymbolUniqueId(4435);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_IImage3D1_Int3_UInt1 =
+ TSymbolUniqueId(4436);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_UImage3D1_Int3_UInt1 =
+ TSymbolUniqueId(4437);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_ImageCube1_Int3_UInt1 =
+ TSymbolUniqueId(4438);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_IImageCube1_Int3_UInt1 =
+ TSymbolUniqueId(4439);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_UImageCube1_Int3_UInt1 =
+ TSymbolUniqueId(4440);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_ImageBuffer1_Int1_UInt1 =
+ TSymbolUniqueId(4441);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_IImageBuffer1_Int1_UInt1 =
+ TSymbolUniqueId(4442);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_UImageBuffer1_Int1_UInt1 =
+ TSymbolUniqueId(4443);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_Image2DArray1_Int3_UInt1 =
+ TSymbolUniqueId(4444);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_IImage2DArray1_Int3_UInt1 =
+ TSymbolUniqueId(4445);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_UImage2DArray1_Int3_UInt1 =
+ TSymbolUniqueId(4446);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_ImageCubeArray1_Int3_UInt1 =
+ TSymbolUniqueId(4447);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_IImageCubeArray1_Int3_UInt1 =
+ TSymbolUniqueId(4448);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_UImageCubeArray1_Int3_UInt1 =
+ TSymbolUniqueId(4449);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_Image1D1_Int1_UInt1 =
+ TSymbolUniqueId(4450);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_IImage1D1_Int1_UInt1 =
+ TSymbolUniqueId(4451);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_UImage1D1_Int1_UInt1 =
+ TSymbolUniqueId(4452);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_Image1DArray1_Int2_UInt1 =
+ TSymbolUniqueId(4453);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_IImage1DArray1_Int2_UInt1 =
+ TSymbolUniqueId(4454);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_UImage1DArray1_Int2_UInt1 =
+ TSymbolUniqueId(4455);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_ImageRect1_Int2_UInt1 =
+ TSymbolUniqueId(4456);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_IImageRect1_Int2_UInt1 =
+ TSymbolUniqueId(4457);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_UImageRect1_Int2_UInt1 =
+ TSymbolUniqueId(4458);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_Image2DMS1_Int2_Int1_UInt1 =
+ TSymbolUniqueId(4459);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_IImage2DMS1_Int2_Int1_UInt1 =
+ TSymbolUniqueId(4460);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_UImage2DMS1_Int2_Int1_UInt1 =
+ TSymbolUniqueId(4461);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_Image2DMSArray1_Int3_Int1_UInt1 =
+ TSymbolUniqueId(4462);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_IImage2DMSArray1_Int3_Int1_UInt1 =
+ TSymbolUniqueId(4463);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_UImage2DMSArray1_Int3_Int1_UInt1 =
+ TSymbolUniqueId(4464);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_Image2D1_Int2_Int1 =
+ TSymbolUniqueId(4465);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_IImage2D1_Int2_Int1 =
+ TSymbolUniqueId(4466);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_UImage2D1_Int2_Int1 =
+ TSymbolUniqueId(4467);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_Image3D1_Int3_Int1 =
+ TSymbolUniqueId(4468);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_IImage3D1_Int3_Int1 =
+ TSymbolUniqueId(4469);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_UImage3D1_Int3_Int1 =
+ TSymbolUniqueId(4470);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_ImageCube1_Int3_Int1 =
+ TSymbolUniqueId(4471);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_IImageCube1_Int3_Int1 =
+ TSymbolUniqueId(4472);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_UImageCube1_Int3_Int1 =
+ TSymbolUniqueId(4473);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_ImageBuffer1_Int1_Int1 =
+ TSymbolUniqueId(4474);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_IImageBuffer1_Int1_Int1 =
+ TSymbolUniqueId(4475);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_UImageBuffer1_Int1_Int1 =
+ TSymbolUniqueId(4476);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_Image2DArray1_Int3_Int1 =
+ TSymbolUniqueId(4477);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_IImage2DArray1_Int3_Int1 =
+ TSymbolUniqueId(4478);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_UImage2DArray1_Int3_Int1 =
+ TSymbolUniqueId(4479);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_ImageCubeArray1_Int3_Int1 =
+ TSymbolUniqueId(4480);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_IImageCubeArray1_Int3_Int1 =
+ TSymbolUniqueId(4481);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_UImageCubeArray1_Int3_Int1 =
+ TSymbolUniqueId(4482);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_Image1D1_Int1_Int1 =
+ TSymbolUniqueId(4483);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_IImage1D1_Int1_Int1 =
+ TSymbolUniqueId(4484);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_UImage1D1_Int1_Int1 =
+ TSymbolUniqueId(4485);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_Image1DArray1_Int2_Int1 =
+ TSymbolUniqueId(4486);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_IImage1DArray1_Int2_Int1 =
+ TSymbolUniqueId(4487);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_UImage1DArray1_Int2_Int1 =
+ TSymbolUniqueId(4488);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_ImageRect1_Int2_Int1 =
+ TSymbolUniqueId(4489);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_IImageRect1_Int2_Int1 =
+ TSymbolUniqueId(4490);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_UImageRect1_Int2_Int1 =
+ TSymbolUniqueId(4491);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_Image2DMS1_Int2_Int1_Int1 =
+ TSymbolUniqueId(4492);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_IImage2DMS1_Int2_Int1_Int1 =
+ TSymbolUniqueId(4493);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_UImage2DMS1_Int2_Int1_Int1 =
+ TSymbolUniqueId(4494);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_Image2DMSArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(4495);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_IImage2DMSArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(4496);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_UImage2DMSArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(4497);
+ static constexpr const TSymbolUniqueId imageAtomicOr_Image2D1_Int2_UInt1 =
+ TSymbolUniqueId(4498);
+ static constexpr const TSymbolUniqueId imageAtomicOr_IImage2D1_Int2_UInt1 =
+ TSymbolUniqueId(4499);
+ static constexpr const TSymbolUniqueId imageAtomicOr_UImage2D1_Int2_UInt1 =
+ TSymbolUniqueId(4500);
+ static constexpr const TSymbolUniqueId imageAtomicOr_Image3D1_Int3_UInt1 =
+ TSymbolUniqueId(4501);
+ static constexpr const TSymbolUniqueId imageAtomicOr_IImage3D1_Int3_UInt1 =
+ TSymbolUniqueId(4502);
+ static constexpr const TSymbolUniqueId imageAtomicOr_UImage3D1_Int3_UInt1 =
+ TSymbolUniqueId(4503);
+ static constexpr const TSymbolUniqueId imageAtomicOr_ImageCube1_Int3_UInt1 =
+ TSymbolUniqueId(4504);
+ static constexpr const TSymbolUniqueId imageAtomicOr_IImageCube1_Int3_UInt1 =
+ TSymbolUniqueId(4505);
+ static constexpr const TSymbolUniqueId imageAtomicOr_UImageCube1_Int3_UInt1 =
+ TSymbolUniqueId(4506);
+ static constexpr const TSymbolUniqueId imageAtomicOr_ImageBuffer1_Int1_UInt1 =
+ TSymbolUniqueId(4507);
+ static constexpr const TSymbolUniqueId imageAtomicOr_IImageBuffer1_Int1_UInt1 =
+ TSymbolUniqueId(4508);
+ static constexpr const TSymbolUniqueId imageAtomicOr_UImageBuffer1_Int1_UInt1 =
+ TSymbolUniqueId(4509);
+ static constexpr const TSymbolUniqueId imageAtomicOr_Image2DArray1_Int3_UInt1 =
+ TSymbolUniqueId(4510);
+ static constexpr const TSymbolUniqueId imageAtomicOr_IImage2DArray1_Int3_UInt1 =
+ TSymbolUniqueId(4511);
+ static constexpr const TSymbolUniqueId imageAtomicOr_UImage2DArray1_Int3_UInt1 =
+ TSymbolUniqueId(4512);
+ static constexpr const TSymbolUniqueId imageAtomicOr_ImageCubeArray1_Int3_UInt1 =
+ TSymbolUniqueId(4513);
+ static constexpr const TSymbolUniqueId imageAtomicOr_IImageCubeArray1_Int3_UInt1 =
+ TSymbolUniqueId(4514);
+ static constexpr const TSymbolUniqueId imageAtomicOr_UImageCubeArray1_Int3_UInt1 =
+ TSymbolUniqueId(4515);
+ static constexpr const TSymbolUniqueId imageAtomicOr_Image1D1_Int1_UInt1 =
+ TSymbolUniqueId(4516);
+ static constexpr const TSymbolUniqueId imageAtomicOr_IImage1D1_Int1_UInt1 =
+ TSymbolUniqueId(4517);
+ static constexpr const TSymbolUniqueId imageAtomicOr_UImage1D1_Int1_UInt1 =
+ TSymbolUniqueId(4518);
+ static constexpr const TSymbolUniqueId imageAtomicOr_Image1DArray1_Int2_UInt1 =
+ TSymbolUniqueId(4519);
+ static constexpr const TSymbolUniqueId imageAtomicOr_IImage1DArray1_Int2_UInt1 =
+ TSymbolUniqueId(4520);
+ static constexpr const TSymbolUniqueId imageAtomicOr_UImage1DArray1_Int2_UInt1 =
+ TSymbolUniqueId(4521);
+ static constexpr const TSymbolUniqueId imageAtomicOr_ImageRect1_Int2_UInt1 =
+ TSymbolUniqueId(4522);
+ static constexpr const TSymbolUniqueId imageAtomicOr_IImageRect1_Int2_UInt1 =
+ TSymbolUniqueId(4523);
+ static constexpr const TSymbolUniqueId imageAtomicOr_UImageRect1_Int2_UInt1 =
+ TSymbolUniqueId(4524);
+ static constexpr const TSymbolUniqueId imageAtomicOr_Image2DMS1_Int2_Int1_UInt1 =
+ TSymbolUniqueId(4525);
+ static constexpr const TSymbolUniqueId imageAtomicOr_IImage2DMS1_Int2_Int1_UInt1 =
+ TSymbolUniqueId(4526);
+ static constexpr const TSymbolUniqueId imageAtomicOr_UImage2DMS1_Int2_Int1_UInt1 =
+ TSymbolUniqueId(4527);
+ static constexpr const TSymbolUniqueId imageAtomicOr_Image2DMSArray1_Int3_Int1_UInt1 =
+ TSymbolUniqueId(4528);
+ static constexpr const TSymbolUniqueId imageAtomicOr_IImage2DMSArray1_Int3_Int1_UInt1 =
+ TSymbolUniqueId(4529);
+ static constexpr const TSymbolUniqueId imageAtomicOr_UImage2DMSArray1_Int3_Int1_UInt1 =
+ TSymbolUniqueId(4530);
+ static constexpr const TSymbolUniqueId imageAtomicOr_Image2D1_Int2_Int1 = TSymbolUniqueId(4531);
+ static constexpr const TSymbolUniqueId imageAtomicOr_IImage2D1_Int2_Int1 =
+ TSymbolUniqueId(4532);
+ static constexpr const TSymbolUniqueId imageAtomicOr_UImage2D1_Int2_Int1 =
+ TSymbolUniqueId(4533);
+ static constexpr const TSymbolUniqueId imageAtomicOr_Image3D1_Int3_Int1 = TSymbolUniqueId(4534);
+ static constexpr const TSymbolUniqueId imageAtomicOr_IImage3D1_Int3_Int1 =
+ TSymbolUniqueId(4535);
+ static constexpr const TSymbolUniqueId imageAtomicOr_UImage3D1_Int3_Int1 =
+ TSymbolUniqueId(4536);
+ static constexpr const TSymbolUniqueId imageAtomicOr_ImageCube1_Int3_Int1 =
+ TSymbolUniqueId(4537);
+ static constexpr const TSymbolUniqueId imageAtomicOr_IImageCube1_Int3_Int1 =
+ TSymbolUniqueId(4538);
+ static constexpr const TSymbolUniqueId imageAtomicOr_UImageCube1_Int3_Int1 =
+ TSymbolUniqueId(4539);
+ static constexpr const TSymbolUniqueId imageAtomicOr_ImageBuffer1_Int1_Int1 =
+ TSymbolUniqueId(4540);
+ static constexpr const TSymbolUniqueId imageAtomicOr_IImageBuffer1_Int1_Int1 =
+ TSymbolUniqueId(4541);
+ static constexpr const TSymbolUniqueId imageAtomicOr_UImageBuffer1_Int1_Int1 =
+ TSymbolUniqueId(4542);
+ static constexpr const TSymbolUniqueId imageAtomicOr_Image2DArray1_Int3_Int1 =
+ TSymbolUniqueId(4543);
+ static constexpr const TSymbolUniqueId imageAtomicOr_IImage2DArray1_Int3_Int1 =
+ TSymbolUniqueId(4544);
+ static constexpr const TSymbolUniqueId imageAtomicOr_UImage2DArray1_Int3_Int1 =
+ TSymbolUniqueId(4545);
+ static constexpr const TSymbolUniqueId imageAtomicOr_ImageCubeArray1_Int3_Int1 =
+ TSymbolUniqueId(4546);
+ static constexpr const TSymbolUniqueId imageAtomicOr_IImageCubeArray1_Int3_Int1 =
+ TSymbolUniqueId(4547);
+ static constexpr const TSymbolUniqueId imageAtomicOr_UImageCubeArray1_Int3_Int1 =
+ TSymbolUniqueId(4548);
+ static constexpr const TSymbolUniqueId imageAtomicOr_Image1D1_Int1_Int1 = TSymbolUniqueId(4549);
+ static constexpr const TSymbolUniqueId imageAtomicOr_IImage1D1_Int1_Int1 =
+ TSymbolUniqueId(4550);
+ static constexpr const TSymbolUniqueId imageAtomicOr_UImage1D1_Int1_Int1 =
+ TSymbolUniqueId(4551);
+ static constexpr const TSymbolUniqueId imageAtomicOr_Image1DArray1_Int2_Int1 =
+ TSymbolUniqueId(4552);
+ static constexpr const TSymbolUniqueId imageAtomicOr_IImage1DArray1_Int2_Int1 =
+ TSymbolUniqueId(4553);
+ static constexpr const TSymbolUniqueId imageAtomicOr_UImage1DArray1_Int2_Int1 =
+ TSymbolUniqueId(4554);
+ static constexpr const TSymbolUniqueId imageAtomicOr_ImageRect1_Int2_Int1 =
+ TSymbolUniqueId(4555);
+ static constexpr const TSymbolUniqueId imageAtomicOr_IImageRect1_Int2_Int1 =
+ TSymbolUniqueId(4556);
+ static constexpr const TSymbolUniqueId imageAtomicOr_UImageRect1_Int2_Int1 =
+ TSymbolUniqueId(4557);
+ static constexpr const TSymbolUniqueId imageAtomicOr_Image2DMS1_Int2_Int1_Int1 =
+ TSymbolUniqueId(4558);
+ static constexpr const TSymbolUniqueId imageAtomicOr_IImage2DMS1_Int2_Int1_Int1 =
+ TSymbolUniqueId(4559);
+ static constexpr const TSymbolUniqueId imageAtomicOr_UImage2DMS1_Int2_Int1_Int1 =
+ TSymbolUniqueId(4560);
+ static constexpr const TSymbolUniqueId imageAtomicOr_Image2DMSArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(4561);
+ static constexpr const TSymbolUniqueId imageAtomicOr_IImage2DMSArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(4562);
+ static constexpr const TSymbolUniqueId imageAtomicOr_UImage2DMSArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(4563);
+ static constexpr const TSymbolUniqueId imageAtomicXor_Image2D1_Int2_UInt1 =
+ TSymbolUniqueId(4564);
+ static constexpr const TSymbolUniqueId imageAtomicXor_IImage2D1_Int2_UInt1 =
+ TSymbolUniqueId(4565);
+ static constexpr const TSymbolUniqueId imageAtomicXor_UImage2D1_Int2_UInt1 =
+ TSymbolUniqueId(4566);
+ static constexpr const TSymbolUniqueId imageAtomicXor_Image3D1_Int3_UInt1 =
+ TSymbolUniqueId(4567);
+ static constexpr const TSymbolUniqueId imageAtomicXor_IImage3D1_Int3_UInt1 =
+ TSymbolUniqueId(4568);
+ static constexpr const TSymbolUniqueId imageAtomicXor_UImage3D1_Int3_UInt1 =
+ TSymbolUniqueId(4569);
+ static constexpr const TSymbolUniqueId imageAtomicXor_ImageCube1_Int3_UInt1 =
+ TSymbolUniqueId(4570);
+ static constexpr const TSymbolUniqueId imageAtomicXor_IImageCube1_Int3_UInt1 =
+ TSymbolUniqueId(4571);
+ static constexpr const TSymbolUniqueId imageAtomicXor_UImageCube1_Int3_UInt1 =
+ TSymbolUniqueId(4572);
+ static constexpr const TSymbolUniqueId imageAtomicXor_ImageBuffer1_Int1_UInt1 =
+ TSymbolUniqueId(4573);
+ static constexpr const TSymbolUniqueId imageAtomicXor_IImageBuffer1_Int1_UInt1 =
+ TSymbolUniqueId(4574);
+ static constexpr const TSymbolUniqueId imageAtomicXor_UImageBuffer1_Int1_UInt1 =
+ TSymbolUniqueId(4575);
+ static constexpr const TSymbolUniqueId imageAtomicXor_Image2DArray1_Int3_UInt1 =
+ TSymbolUniqueId(4576);
+ static constexpr const TSymbolUniqueId imageAtomicXor_IImage2DArray1_Int3_UInt1 =
+ TSymbolUniqueId(4577);
+ static constexpr const TSymbolUniqueId imageAtomicXor_UImage2DArray1_Int3_UInt1 =
+ TSymbolUniqueId(4578);
+ static constexpr const TSymbolUniqueId imageAtomicXor_ImageCubeArray1_Int3_UInt1 =
+ TSymbolUniqueId(4579);
+ static constexpr const TSymbolUniqueId imageAtomicXor_IImageCubeArray1_Int3_UInt1 =
+ TSymbolUniqueId(4580);
+ static constexpr const TSymbolUniqueId imageAtomicXor_UImageCubeArray1_Int3_UInt1 =
+ TSymbolUniqueId(4581);
+ static constexpr const TSymbolUniqueId imageAtomicXor_Image1D1_Int1_UInt1 =
+ TSymbolUniqueId(4582);
+ static constexpr const TSymbolUniqueId imageAtomicXor_IImage1D1_Int1_UInt1 =
+ TSymbolUniqueId(4583);
+ static constexpr const TSymbolUniqueId imageAtomicXor_UImage1D1_Int1_UInt1 =
+ TSymbolUniqueId(4584);
+ static constexpr const TSymbolUniqueId imageAtomicXor_Image1DArray1_Int2_UInt1 =
+ TSymbolUniqueId(4585);
+ static constexpr const TSymbolUniqueId imageAtomicXor_IImage1DArray1_Int2_UInt1 =
+ TSymbolUniqueId(4586);
+ static constexpr const TSymbolUniqueId imageAtomicXor_UImage1DArray1_Int2_UInt1 =
+ TSymbolUniqueId(4587);
+ static constexpr const TSymbolUniqueId imageAtomicXor_ImageRect1_Int2_UInt1 =
+ TSymbolUniqueId(4588);
+ static constexpr const TSymbolUniqueId imageAtomicXor_IImageRect1_Int2_UInt1 =
+ TSymbolUniqueId(4589);
+ static constexpr const TSymbolUniqueId imageAtomicXor_UImageRect1_Int2_UInt1 =
+ TSymbolUniqueId(4590);
+ static constexpr const TSymbolUniqueId imageAtomicXor_Image2DMS1_Int2_Int1_UInt1 =
+ TSymbolUniqueId(4591);
+ static constexpr const TSymbolUniqueId imageAtomicXor_IImage2DMS1_Int2_Int1_UInt1 =
+ TSymbolUniqueId(4592);
+ static constexpr const TSymbolUniqueId imageAtomicXor_UImage2DMS1_Int2_Int1_UInt1 =
+ TSymbolUniqueId(4593);
+ static constexpr const TSymbolUniqueId imageAtomicXor_Image2DMSArray1_Int3_Int1_UInt1 =
+ TSymbolUniqueId(4594);
+ static constexpr const TSymbolUniqueId imageAtomicXor_IImage2DMSArray1_Int3_Int1_UInt1 =
+ TSymbolUniqueId(4595);
+ static constexpr const TSymbolUniqueId imageAtomicXor_UImage2DMSArray1_Int3_Int1_UInt1 =
+ TSymbolUniqueId(4596);
+ static constexpr const TSymbolUniqueId imageAtomicXor_Image2D1_Int2_Int1 =
+ TSymbolUniqueId(4597);
+ static constexpr const TSymbolUniqueId imageAtomicXor_IImage2D1_Int2_Int1 =
+ TSymbolUniqueId(4598);
+ static constexpr const TSymbolUniqueId imageAtomicXor_UImage2D1_Int2_Int1 =
+ TSymbolUniqueId(4599);
+ static constexpr const TSymbolUniqueId imageAtomicXor_Image3D1_Int3_Int1 =
+ TSymbolUniqueId(4600);
+ static constexpr const TSymbolUniqueId imageAtomicXor_IImage3D1_Int3_Int1 =
+ TSymbolUniqueId(4601);
+ static constexpr const TSymbolUniqueId imageAtomicXor_UImage3D1_Int3_Int1 =
+ TSymbolUniqueId(4602);
+ static constexpr const TSymbolUniqueId imageAtomicXor_ImageCube1_Int3_Int1 =
+ TSymbolUniqueId(4603);
+ static constexpr const TSymbolUniqueId imageAtomicXor_IImageCube1_Int3_Int1 =
+ TSymbolUniqueId(4604);
+ static constexpr const TSymbolUniqueId imageAtomicXor_UImageCube1_Int3_Int1 =
+ TSymbolUniqueId(4605);
+ static constexpr const TSymbolUniqueId imageAtomicXor_ImageBuffer1_Int1_Int1 =
+ TSymbolUniqueId(4606);
+ static constexpr const TSymbolUniqueId imageAtomicXor_IImageBuffer1_Int1_Int1 =
+ TSymbolUniqueId(4607);
+ static constexpr const TSymbolUniqueId imageAtomicXor_UImageBuffer1_Int1_Int1 =
+ TSymbolUniqueId(4608);
+ static constexpr const TSymbolUniqueId imageAtomicXor_Image2DArray1_Int3_Int1 =
+ TSymbolUniqueId(4609);
+ static constexpr const TSymbolUniqueId imageAtomicXor_IImage2DArray1_Int3_Int1 =
+ TSymbolUniqueId(4610);
+ static constexpr const TSymbolUniqueId imageAtomicXor_UImage2DArray1_Int3_Int1 =
+ TSymbolUniqueId(4611);
+ static constexpr const TSymbolUniqueId imageAtomicXor_ImageCubeArray1_Int3_Int1 =
+ TSymbolUniqueId(4612);
+ static constexpr const TSymbolUniqueId imageAtomicXor_IImageCubeArray1_Int3_Int1 =
+ TSymbolUniqueId(4613);
+ static constexpr const TSymbolUniqueId imageAtomicXor_UImageCubeArray1_Int3_Int1 =
+ TSymbolUniqueId(4614);
+ static constexpr const TSymbolUniqueId imageAtomicXor_Image1D1_Int1_Int1 =
+ TSymbolUniqueId(4615);
+ static constexpr const TSymbolUniqueId imageAtomicXor_IImage1D1_Int1_Int1 =
+ TSymbolUniqueId(4616);
+ static constexpr const TSymbolUniqueId imageAtomicXor_UImage1D1_Int1_Int1 =
+ TSymbolUniqueId(4617);
+ static constexpr const TSymbolUniqueId imageAtomicXor_Image1DArray1_Int2_Int1 =
+ TSymbolUniqueId(4618);
+ static constexpr const TSymbolUniqueId imageAtomicXor_IImage1DArray1_Int2_Int1 =
+ TSymbolUniqueId(4619);
+ static constexpr const TSymbolUniqueId imageAtomicXor_UImage1DArray1_Int2_Int1 =
+ TSymbolUniqueId(4620);
+ static constexpr const TSymbolUniqueId imageAtomicXor_ImageRect1_Int2_Int1 =
+ TSymbolUniqueId(4621);
+ static constexpr const TSymbolUniqueId imageAtomicXor_IImageRect1_Int2_Int1 =
+ TSymbolUniqueId(4622);
+ static constexpr const TSymbolUniqueId imageAtomicXor_UImageRect1_Int2_Int1 =
+ TSymbolUniqueId(4623);
+ static constexpr const TSymbolUniqueId imageAtomicXor_Image2DMS1_Int2_Int1_Int1 =
+ TSymbolUniqueId(4624);
+ static constexpr const TSymbolUniqueId imageAtomicXor_IImage2DMS1_Int2_Int1_Int1 =
+ TSymbolUniqueId(4625);
+ static constexpr const TSymbolUniqueId imageAtomicXor_UImage2DMS1_Int2_Int1_Int1 =
+ TSymbolUniqueId(4626);
+ static constexpr const TSymbolUniqueId imageAtomicXor_Image2DMSArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(4627);
+ static constexpr const TSymbolUniqueId imageAtomicXor_IImage2DMSArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(4628);
+ static constexpr const TSymbolUniqueId imageAtomicXor_UImage2DMSArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(4629);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_Image2D1_Int2_UInt1 =
+ TSymbolUniqueId(4630);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_IImage2D1_Int2_UInt1 =
+ TSymbolUniqueId(4631);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_UImage2D1_Int2_UInt1 =
+ TSymbolUniqueId(4632);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_Image3D1_Int3_UInt1 =
+ TSymbolUniqueId(4633);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_IImage3D1_Int3_UInt1 =
+ TSymbolUniqueId(4634);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_UImage3D1_Int3_UInt1 =
+ TSymbolUniqueId(4635);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_ImageCube1_Int3_UInt1 =
+ TSymbolUniqueId(4636);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_IImageCube1_Int3_UInt1 =
+ TSymbolUniqueId(4637);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_UImageCube1_Int3_UInt1 =
+ TSymbolUniqueId(4638);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_ImageBuffer1_Int1_UInt1 =
+ TSymbolUniqueId(4639);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_IImageBuffer1_Int1_UInt1 =
+ TSymbolUniqueId(4640);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_UImageBuffer1_Int1_UInt1 =
+ TSymbolUniqueId(4641);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_Image2DArray1_Int3_UInt1 =
+ TSymbolUniqueId(4642);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_IImage2DArray1_Int3_UInt1 =
+ TSymbolUniqueId(4643);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_UImage2DArray1_Int3_UInt1 =
+ TSymbolUniqueId(4644);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_ImageCubeArray1_Int3_UInt1 =
+ TSymbolUniqueId(4645);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_IImageCubeArray1_Int3_UInt1 =
+ TSymbolUniqueId(4646);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_UImageCubeArray1_Int3_UInt1 =
+ TSymbolUniqueId(4647);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_Image1D1_Int1_UInt1 =
+ TSymbolUniqueId(4648);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_IImage1D1_Int1_UInt1 =
+ TSymbolUniqueId(4649);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_UImage1D1_Int1_UInt1 =
+ TSymbolUniqueId(4650);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_Image1DArray1_Int2_UInt1 =
+ TSymbolUniqueId(4651);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_IImage1DArray1_Int2_UInt1 =
+ TSymbolUniqueId(4652);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_UImage1DArray1_Int2_UInt1 =
+ TSymbolUniqueId(4653);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_ImageRect1_Int2_UInt1 =
+ TSymbolUniqueId(4654);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_IImageRect1_Int2_UInt1 =
+ TSymbolUniqueId(4655);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_UImageRect1_Int2_UInt1 =
+ TSymbolUniqueId(4656);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_Image2DMS1_Int2_Int1_UInt1 =
+ TSymbolUniqueId(4657);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_IImage2DMS1_Int2_Int1_UInt1 =
+ TSymbolUniqueId(4658);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_UImage2DMS1_Int2_Int1_UInt1 =
+ TSymbolUniqueId(4659);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_Image2DMSArray1_Int3_Int1_UInt1 =
+ TSymbolUniqueId(4660);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_IImage2DMSArray1_Int3_Int1_UInt1 =
+ TSymbolUniqueId(4661);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_UImage2DMSArray1_Int3_Int1_UInt1 =
+ TSymbolUniqueId(4662);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_Image2D1_Int2_Int1 =
+ TSymbolUniqueId(4663);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_IImage2D1_Int2_Int1 =
+ TSymbolUniqueId(4664);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_UImage2D1_Int2_Int1 =
+ TSymbolUniqueId(4665);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_Image3D1_Int3_Int1 =
+ TSymbolUniqueId(4666);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_IImage3D1_Int3_Int1 =
+ TSymbolUniqueId(4667);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_UImage3D1_Int3_Int1 =
+ TSymbolUniqueId(4668);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_ImageCube1_Int3_Int1 =
+ TSymbolUniqueId(4669);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_IImageCube1_Int3_Int1 =
+ TSymbolUniqueId(4670);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_UImageCube1_Int3_Int1 =
+ TSymbolUniqueId(4671);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_ImageBuffer1_Int1_Int1 =
+ TSymbolUniqueId(4672);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_IImageBuffer1_Int1_Int1 =
+ TSymbolUniqueId(4673);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_UImageBuffer1_Int1_Int1 =
+ TSymbolUniqueId(4674);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_Image2DArray1_Int3_Int1 =
+ TSymbolUniqueId(4675);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_IImage2DArray1_Int3_Int1 =
+ TSymbolUniqueId(4676);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_UImage2DArray1_Int3_Int1 =
+ TSymbolUniqueId(4677);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_ImageCubeArray1_Int3_Int1 =
+ TSymbolUniqueId(4678);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_IImageCubeArray1_Int3_Int1 =
+ TSymbolUniqueId(4679);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_UImageCubeArray1_Int3_Int1 =
+ TSymbolUniqueId(4680);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_Image1D1_Int1_Int1 =
+ TSymbolUniqueId(4681);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_IImage1D1_Int1_Int1 =
+ TSymbolUniqueId(4682);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_UImage1D1_Int1_Int1 =
+ TSymbolUniqueId(4683);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_Image1DArray1_Int2_Int1 =
+ TSymbolUniqueId(4684);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_IImage1DArray1_Int2_Int1 =
+ TSymbolUniqueId(4685);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_UImage1DArray1_Int2_Int1 =
+ TSymbolUniqueId(4686);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_ImageRect1_Int2_Int1 =
+ TSymbolUniqueId(4687);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_IImageRect1_Int2_Int1 =
+ TSymbolUniqueId(4688);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_UImageRect1_Int2_Int1 =
+ TSymbolUniqueId(4689);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_Image2DMS1_Int2_Int1_Int1 =
+ TSymbolUniqueId(4690);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_IImage2DMS1_Int2_Int1_Int1 =
+ TSymbolUniqueId(4691);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_UImage2DMS1_Int2_Int1_Int1 =
+ TSymbolUniqueId(4692);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_Image2DMSArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(4693);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_IImage2DMSArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(4694);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_UImage2DMSArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(4695);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_Image2D1_Int2_Float1 =
+ TSymbolUniqueId(4696);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_IImage2D1_Int2_Float1 =
+ TSymbolUniqueId(4697);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_UImage2D1_Int2_Float1 =
+ TSymbolUniqueId(4698);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_Image3D1_Int3_Float1 =
+ TSymbolUniqueId(4699);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_IImage3D1_Int3_Float1 =
+ TSymbolUniqueId(4700);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_UImage3D1_Int3_Float1 =
+ TSymbolUniqueId(4701);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_ImageCube1_Int3_Float1 =
+ TSymbolUniqueId(4702);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_IImageCube1_Int3_Float1 =
+ TSymbolUniqueId(4703);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_UImageCube1_Int3_Float1 =
+ TSymbolUniqueId(4704);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_ImageBuffer1_Int1_Float1 =
+ TSymbolUniqueId(4705);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_IImageBuffer1_Int1_Float1 =
+ TSymbolUniqueId(4706);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_UImageBuffer1_Int1_Float1 =
+ TSymbolUniqueId(4707);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_Image2DArray1_Int3_Float1 =
+ TSymbolUniqueId(4708);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_IImage2DArray1_Int3_Float1 =
+ TSymbolUniqueId(4709);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_UImage2DArray1_Int3_Float1 =
+ TSymbolUniqueId(4710);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_ImageCubeArray1_Int3_Float1 =
+ TSymbolUniqueId(4711);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_IImageCubeArray1_Int3_Float1 =
+ TSymbolUniqueId(4712);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_UImageCubeArray1_Int3_Float1 =
+ TSymbolUniqueId(4713);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_Image1D1_Int1_Float1 =
+ TSymbolUniqueId(4714);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_IImage1D1_Int1_Float1 =
+ TSymbolUniqueId(4715);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_UImage1D1_Int1_Float1 =
+ TSymbolUniqueId(4716);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_Image1DArray1_Int2_Float1 =
+ TSymbolUniqueId(4717);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_IImage1DArray1_Int2_Float1 =
+ TSymbolUniqueId(4718);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_UImage1DArray1_Int2_Float1 =
+ TSymbolUniqueId(4719);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_ImageRect1_Int2_Float1 =
+ TSymbolUniqueId(4720);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_IImageRect1_Int2_Float1 =
+ TSymbolUniqueId(4721);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_UImageRect1_Int2_Float1 =
+ TSymbolUniqueId(4722);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_Image2DMS1_Int2_Int1_Float1 =
+ TSymbolUniqueId(4723);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_IImage2DMS1_Int2_Int1_Float1 =
+ TSymbolUniqueId(4724);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_UImage2DMS1_Int2_Int1_Float1 =
+ TSymbolUniqueId(4725);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_Image2DMSArray1_Int3_Int1_Float1 =
+ TSymbolUniqueId(4726);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_IImage2DMSArray1_Int3_Int1_Float1 =
+ TSymbolUniqueId(4727);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_UImage2DMSArray1_Int3_Int1_Float1 =
+ TSymbolUniqueId(4728);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_Image2D1_Int2_UInt1_UInt1 =
+ TSymbolUniqueId(4729);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_IImage2D1_Int2_UInt1_UInt1 =
+ TSymbolUniqueId(4730);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_UImage2D1_Int2_UInt1_UInt1 =
+ TSymbolUniqueId(4731);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_Image3D1_Int3_UInt1_UInt1 =
+ TSymbolUniqueId(4732);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_IImage3D1_Int3_UInt1_UInt1 =
+ TSymbolUniqueId(4733);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_UImage3D1_Int3_UInt1_UInt1 =
+ TSymbolUniqueId(4734);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_ImageCube1_Int3_UInt1_UInt1 =
+ TSymbolUniqueId(4735);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_IImageCube1_Int3_UInt1_UInt1 =
+ TSymbolUniqueId(4736);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_UImageCube1_Int3_UInt1_UInt1 =
+ TSymbolUniqueId(4737);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_ImageBuffer1_Int1_UInt1_UInt1 =
+ TSymbolUniqueId(4738);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_IImageBuffer1_Int1_UInt1_UInt1 =
+ TSymbolUniqueId(4739);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_UImageBuffer1_Int1_UInt1_UInt1 =
+ TSymbolUniqueId(4740);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_Image2DArray1_Int3_UInt1_UInt1 =
+ TSymbolUniqueId(4741);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_IImage2DArray1_Int3_UInt1_UInt1 =
+ TSymbolUniqueId(4742);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_UImage2DArray1_Int3_UInt1_UInt1 =
+ TSymbolUniqueId(4743);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_ImageCubeArray1_Int3_UInt1_UInt1 =
+ TSymbolUniqueId(4744);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_IImageCubeArray1_Int3_UInt1_UInt1 =
+ TSymbolUniqueId(4745);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_UImageCubeArray1_Int3_UInt1_UInt1 =
+ TSymbolUniqueId(4746);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_Image1D1_Int1_UInt1_UInt1 =
+ TSymbolUniqueId(4747);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_IImage1D1_Int1_UInt1_UInt1 =
+ TSymbolUniqueId(4748);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_UImage1D1_Int1_UInt1_UInt1 =
+ TSymbolUniqueId(4749);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_Image1DArray1_Int2_UInt1_UInt1 =
+ TSymbolUniqueId(4750);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_IImage1DArray1_Int2_UInt1_UInt1 =
+ TSymbolUniqueId(4751);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_UImage1DArray1_Int2_UInt1_UInt1 =
+ TSymbolUniqueId(4752);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_ImageRect1_Int2_UInt1_UInt1 =
+ TSymbolUniqueId(4753);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_IImageRect1_Int2_UInt1_UInt1 =
+ TSymbolUniqueId(4754);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_UImageRect1_Int2_UInt1_UInt1 =
+ TSymbolUniqueId(4755);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_Image2DMS1_Int2_Int1_UInt1_UInt1 =
+ TSymbolUniqueId(4756);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_IImage2DMS1_Int2_Int1_UInt1_UInt1 =
+ TSymbolUniqueId(4757);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_UImage2DMS1_Int2_Int1_UInt1_UInt1 =
+ TSymbolUniqueId(4758);
+ static constexpr const TSymbolUniqueId
+ imageAtomicCompSwap_Image2DMSArray1_Int3_Int1_UInt1_UInt1 = TSymbolUniqueId(4759);
+ static constexpr const TSymbolUniqueId
+ imageAtomicCompSwap_IImage2DMSArray1_Int3_Int1_UInt1_UInt1 = TSymbolUniqueId(4760);
+ static constexpr const TSymbolUniqueId
+ imageAtomicCompSwap_UImage2DMSArray1_Int3_Int1_UInt1_UInt1 = TSymbolUniqueId(4761);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_Image2D1_Int2_Int1_Int1 =
+ TSymbolUniqueId(4762);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_IImage2D1_Int2_Int1_Int1 =
+ TSymbolUniqueId(4763);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_UImage2D1_Int2_Int1_Int1 =
+ TSymbolUniqueId(4764);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_Image3D1_Int3_Int1_Int1 =
+ TSymbolUniqueId(4765);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_IImage3D1_Int3_Int1_Int1 =
+ TSymbolUniqueId(4766);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_UImage3D1_Int3_Int1_Int1 =
+ TSymbolUniqueId(4767);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_ImageCube1_Int3_Int1_Int1 =
+ TSymbolUniqueId(4768);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_IImageCube1_Int3_Int1_Int1 =
+ TSymbolUniqueId(4769);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_UImageCube1_Int3_Int1_Int1 =
+ TSymbolUniqueId(4770);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_ImageBuffer1_Int1_Int1_Int1 =
+ TSymbolUniqueId(4771);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_IImageBuffer1_Int1_Int1_Int1 =
+ TSymbolUniqueId(4772);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_UImageBuffer1_Int1_Int1_Int1 =
+ TSymbolUniqueId(4773);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_Image2DArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(4774);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_IImage2DArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(4775);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_UImage2DArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(4776);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_ImageCubeArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(4777);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_IImageCubeArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(4778);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_UImageCubeArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(4779);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_Image1D1_Int1_Int1_Int1 =
+ TSymbolUniqueId(4780);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_IImage1D1_Int1_Int1_Int1 =
+ TSymbolUniqueId(4781);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_UImage1D1_Int1_Int1_Int1 =
+ TSymbolUniqueId(4782);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_Image1DArray1_Int2_Int1_Int1 =
+ TSymbolUniqueId(4783);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_IImage1DArray1_Int2_Int1_Int1 =
+ TSymbolUniqueId(4784);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_UImage1DArray1_Int2_Int1_Int1 =
+ TSymbolUniqueId(4785);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_ImageRect1_Int2_Int1_Int1 =
+ TSymbolUniqueId(4786);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_IImageRect1_Int2_Int1_Int1 =
+ TSymbolUniqueId(4787);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_UImageRect1_Int2_Int1_Int1 =
+ TSymbolUniqueId(4788);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_Image2DMS1_Int2_Int1_Int1_Int1 =
+ TSymbolUniqueId(4789);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_IImage2DMS1_Int2_Int1_Int1_Int1 =
+ TSymbolUniqueId(4790);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_UImage2DMS1_Int2_Int1_Int1_Int1 =
+ TSymbolUniqueId(4791);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_Image2DMSArray1_Int3_Int1_Int1_Int1 =
+ TSymbolUniqueId(4792);
+ static constexpr const TSymbolUniqueId
+ imageAtomicCompSwap_IImage2DMSArray1_Int3_Int1_Int1_Int1 = TSymbolUniqueId(4793);
+ static constexpr const TSymbolUniqueId
+ imageAtomicCompSwap_UImage2DMSArray1_Int3_Int1_Int1_Int1 = TSymbolUniqueId(4794);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_Image2D1_Int2_UInt1 =
+ TSymbolUniqueId(4795);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_IImage2D1_Int2_UInt1 =
+ TSymbolUniqueId(4796);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_UImage2D1_Int2_UInt1 =
+ TSymbolUniqueId(4797);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_Image3D1_Int3_UInt1 =
+ TSymbolUniqueId(4798);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_IImage3D1_Int3_UInt1 =
+ TSymbolUniqueId(4799);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_UImage3D1_Int3_UInt1 =
+ TSymbolUniqueId(4800);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_ImageCube1_Int3_UInt1 =
+ TSymbolUniqueId(4801);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_IImageCube1_Int3_UInt1 =
+ TSymbolUniqueId(4802);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_UImageCube1_Int3_UInt1 =
+ TSymbolUniqueId(4803);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_ImageBuffer1_Int1_UInt1 =
+ TSymbolUniqueId(4804);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_IImageBuffer1_Int1_UInt1 =
+ TSymbolUniqueId(4805);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_UImageBuffer1_Int1_UInt1 =
+ TSymbolUniqueId(4806);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_Image2DArray1_Int3_UInt1 =
+ TSymbolUniqueId(4807);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_IImage2DArray1_Int3_UInt1 =
+ TSymbolUniqueId(4808);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_UImage2DArray1_Int3_UInt1 =
+ TSymbolUniqueId(4809);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_ImageCubeArray1_Int3_UInt1 =
+ TSymbolUniqueId(4810);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_IImageCubeArray1_Int3_UInt1 =
+ TSymbolUniqueId(4811);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_UImageCubeArray1_Int3_UInt1 =
+ TSymbolUniqueId(4812);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_Image1D1_Int1_UInt1 =
+ TSymbolUniqueId(4813);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_IImage1D1_Int1_UInt1 =
+ TSymbolUniqueId(4814);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_UImage1D1_Int1_UInt1 =
+ TSymbolUniqueId(4815);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_Image1DArray1_Int2_UInt1 =
+ TSymbolUniqueId(4816);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_IImage1DArray1_Int2_UInt1 =
+ TSymbolUniqueId(4817);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_UImage1DArray1_Int2_UInt1 =
+ TSymbolUniqueId(4818);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_ImageRect1_Int2_UInt1 =
+ TSymbolUniqueId(4819);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_IImageRect1_Int2_UInt1 =
+ TSymbolUniqueId(4820);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_UImageRect1_Int2_UInt1 =
+ TSymbolUniqueId(4821);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_Image2DMS1_Int2_Int1_UInt1 =
+ TSymbolUniqueId(4822);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_IImage2DMS1_Int2_Int1_UInt1 =
+ TSymbolUniqueId(4823);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_UImage2DMS1_Int2_Int1_UInt1 =
+ TSymbolUniqueId(4824);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_Image2DMSArray1_Int3_Int1_UInt1 =
+ TSymbolUniqueId(4825);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_IImage2DMSArray1_Int3_Int1_UInt1 =
+ TSymbolUniqueId(4826);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_UImage2DMSArray1_Int3_Int1_UInt1 =
+ TSymbolUniqueId(4827);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_Image2D1_Int2_Int1 =
+ TSymbolUniqueId(4828);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_IImage2D1_Int2_Int1 =
+ TSymbolUniqueId(4829);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_UImage2D1_Int2_Int1 =
+ TSymbolUniqueId(4830);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_Image3D1_Int3_Int1 =
+ TSymbolUniqueId(4831);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_IImage3D1_Int3_Int1 =
+ TSymbolUniqueId(4832);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_UImage3D1_Int3_Int1 =
+ TSymbolUniqueId(4833);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_ImageCube1_Int3_Int1 =
+ TSymbolUniqueId(4834);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_IImageCube1_Int3_Int1 =
+ TSymbolUniqueId(4835);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_UImageCube1_Int3_Int1 =
+ TSymbolUniqueId(4836);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_ImageBuffer1_Int1_Int1 =
+ TSymbolUniqueId(4837);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_IImageBuffer1_Int1_Int1 =
+ TSymbolUniqueId(4838);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_UImageBuffer1_Int1_Int1 =
+ TSymbolUniqueId(4839);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_Image2DArray1_Int3_Int1 =
+ TSymbolUniqueId(4840);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_IImage2DArray1_Int3_Int1 =
+ TSymbolUniqueId(4841);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_UImage2DArray1_Int3_Int1 =
+ TSymbolUniqueId(4842);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_ImageCubeArray1_Int3_Int1 =
+ TSymbolUniqueId(4843);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_IImageCubeArray1_Int3_Int1 =
+ TSymbolUniqueId(4844);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_UImageCubeArray1_Int3_Int1 =
+ TSymbolUniqueId(4845);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_Image1D1_Int1_Int1 =
+ TSymbolUniqueId(4846);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_IImage1D1_Int1_Int1 =
+ TSymbolUniqueId(4847);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_UImage1D1_Int1_Int1 =
+ TSymbolUniqueId(4848);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_Image1DArray1_Int2_Int1 =
+ TSymbolUniqueId(4849);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_IImage1DArray1_Int2_Int1 =
+ TSymbolUniqueId(4850);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_UImage1DArray1_Int2_Int1 =
+ TSymbolUniqueId(4851);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_ImageRect1_Int2_Int1 =
+ TSymbolUniqueId(4852);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_IImageRect1_Int2_Int1 =
+ TSymbolUniqueId(4853);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_UImageRect1_Int2_Int1 =
+ TSymbolUniqueId(4854);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_Image2DMS1_Int2_Int1_Int1 =
+ TSymbolUniqueId(4855);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_IImage2DMS1_Int2_Int1_Int1 =
+ TSymbolUniqueId(4856);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_UImage2DMS1_Int2_Int1_Int1 =
+ TSymbolUniqueId(4857);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_Image2DMSArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(4858);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_IImage2DMSArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(4859);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_UImage2DMSArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(4860);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_Image2D1_Int2_UInt1 =
+ TSymbolUniqueId(4861);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_IImage2D1_Int2_UInt1 =
+ TSymbolUniqueId(4862);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_UImage2D1_Int2_UInt1 =
+ TSymbolUniqueId(4863);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_Image3D1_Int3_UInt1 =
+ TSymbolUniqueId(4864);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_IImage3D1_Int3_UInt1 =
+ TSymbolUniqueId(4865);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_UImage3D1_Int3_UInt1 =
+ TSymbolUniqueId(4866);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_ImageCube1_Int3_UInt1 =
+ TSymbolUniqueId(4867);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_IImageCube1_Int3_UInt1 =
+ TSymbolUniqueId(4868);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_UImageCube1_Int3_UInt1 =
+ TSymbolUniqueId(4869);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_ImageBuffer1_Int1_UInt1 =
+ TSymbolUniqueId(4870);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_IImageBuffer1_Int1_UInt1 =
+ TSymbolUniqueId(4871);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_UImageBuffer1_Int1_UInt1 =
+ TSymbolUniqueId(4872);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_Image2DArray1_Int3_UInt1 =
+ TSymbolUniqueId(4873);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_IImage2DArray1_Int3_UInt1 =
+ TSymbolUniqueId(4874);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_UImage2DArray1_Int3_UInt1 =
+ TSymbolUniqueId(4875);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_ImageCubeArray1_Int3_UInt1 =
+ TSymbolUniqueId(4876);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_IImageCubeArray1_Int3_UInt1 =
+ TSymbolUniqueId(4877);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_UImageCubeArray1_Int3_UInt1 =
+ TSymbolUniqueId(4878);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_Image1D1_Int1_UInt1 =
+ TSymbolUniqueId(4879);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_IImage1D1_Int1_UInt1 =
+ TSymbolUniqueId(4880);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_UImage1D1_Int1_UInt1 =
+ TSymbolUniqueId(4881);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_Image1DArray1_Int2_UInt1 =
+ TSymbolUniqueId(4882);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_IImage1DArray1_Int2_UInt1 =
+ TSymbolUniqueId(4883);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_UImage1DArray1_Int2_UInt1 =
+ TSymbolUniqueId(4884);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_ImageRect1_Int2_UInt1 =
+ TSymbolUniqueId(4885);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_IImageRect1_Int2_UInt1 =
+ TSymbolUniqueId(4886);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_UImageRect1_Int2_UInt1 =
+ TSymbolUniqueId(4887);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_Image2DMS1_Int2_Int1_UInt1 =
+ TSymbolUniqueId(4888);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_IImage2DMS1_Int2_Int1_UInt1 =
+ TSymbolUniqueId(4889);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_UImage2DMS1_Int2_Int1_UInt1 =
+ TSymbolUniqueId(4890);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_Image2DMSArray1_Int3_Int1_UInt1 =
+ TSymbolUniqueId(4891);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_IImage2DMSArray1_Int3_Int1_UInt1 =
+ TSymbolUniqueId(4892);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_UImage2DMSArray1_Int3_Int1_UInt1 =
+ TSymbolUniqueId(4893);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_Image2D1_Int2_Int1 =
+ TSymbolUniqueId(4894);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_IImage2D1_Int2_Int1 =
+ TSymbolUniqueId(4895);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_UImage2D1_Int2_Int1 =
+ TSymbolUniqueId(4896);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_Image3D1_Int3_Int1 =
+ TSymbolUniqueId(4897);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_IImage3D1_Int3_Int1 =
+ TSymbolUniqueId(4898);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_UImage3D1_Int3_Int1 =
+ TSymbolUniqueId(4899);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_ImageCube1_Int3_Int1 =
+ TSymbolUniqueId(4900);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_IImageCube1_Int3_Int1 =
+ TSymbolUniqueId(4901);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_UImageCube1_Int3_Int1 =
+ TSymbolUniqueId(4902);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_ImageBuffer1_Int1_Int1 =
+ TSymbolUniqueId(4903);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_IImageBuffer1_Int1_Int1 =
+ TSymbolUniqueId(4904);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_UImageBuffer1_Int1_Int1 =
+ TSymbolUniqueId(4905);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_Image2DArray1_Int3_Int1 =
+ TSymbolUniqueId(4906);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_IImage2DArray1_Int3_Int1 =
+ TSymbolUniqueId(4907);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_UImage2DArray1_Int3_Int1 =
+ TSymbolUniqueId(4908);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_ImageCubeArray1_Int3_Int1 =
+ TSymbolUniqueId(4909);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_IImageCubeArray1_Int3_Int1 =
+ TSymbolUniqueId(4910);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_UImageCubeArray1_Int3_Int1 =
+ TSymbolUniqueId(4911);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_Image1D1_Int1_Int1 =
+ TSymbolUniqueId(4912);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_IImage1D1_Int1_Int1 =
+ TSymbolUniqueId(4913);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_UImage1D1_Int1_Int1 =
+ TSymbolUniqueId(4914);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_Image1DArray1_Int2_Int1 =
+ TSymbolUniqueId(4915);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_IImage1DArray1_Int2_Int1 =
+ TSymbolUniqueId(4916);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_UImage1DArray1_Int2_Int1 =
+ TSymbolUniqueId(4917);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_ImageRect1_Int2_Int1 =
+ TSymbolUniqueId(4918);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_IImageRect1_Int2_Int1 =
+ TSymbolUniqueId(4919);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_UImageRect1_Int2_Int1 =
+ TSymbolUniqueId(4920);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_Image2DMS1_Int2_Int1_Int1 =
+ TSymbolUniqueId(4921);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_IImage2DMS1_Int2_Int1_Int1 =
+ TSymbolUniqueId(4922);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_UImage2DMS1_Int2_Int1_Int1 =
+ TSymbolUniqueId(4923);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_Image2DMSArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(4924);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_IImage2DMSArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(4925);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_UImage2DMSArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(4926);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_Image2D1_Int2_UInt1 =
+ TSymbolUniqueId(4927);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImage2D1_Int2_UInt1 =
+ TSymbolUniqueId(4928);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImage2D1_Int2_UInt1 =
+ TSymbolUniqueId(4929);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_Image3D1_Int3_UInt1 =
+ TSymbolUniqueId(4930);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImage3D1_Int3_UInt1 =
+ TSymbolUniqueId(4931);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImage3D1_Int3_UInt1 =
+ TSymbolUniqueId(4932);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_ImageCube1_Int3_UInt1 =
+ TSymbolUniqueId(4933);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImageCube1_Int3_UInt1 =
+ TSymbolUniqueId(4934);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImageCube1_Int3_UInt1 =
+ TSymbolUniqueId(4935);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_ImageBuffer1_Int1_UInt1 =
+ TSymbolUniqueId(4936);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImageBuffer1_Int1_UInt1 =
+ TSymbolUniqueId(4937);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImageBuffer1_Int1_UInt1 =
+ TSymbolUniqueId(4938);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_Image2DArray1_Int3_UInt1 =
+ TSymbolUniqueId(4939);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImage2DArray1_Int3_UInt1 =
+ TSymbolUniqueId(4940);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImage2DArray1_Int3_UInt1 =
+ TSymbolUniqueId(4941);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_ImageCubeArray1_Int3_UInt1 =
+ TSymbolUniqueId(4942);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImageCubeArray1_Int3_UInt1 =
+ TSymbolUniqueId(4943);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImageCubeArray1_Int3_UInt1 =
+ TSymbolUniqueId(4944);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_Image1D1_Int1_UInt1 =
+ TSymbolUniqueId(4945);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImage1D1_Int1_UInt1 =
+ TSymbolUniqueId(4946);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImage1D1_Int1_UInt1 =
+ TSymbolUniqueId(4947);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_Image1DArray1_Int2_UInt1 =
+ TSymbolUniqueId(4948);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImage1DArray1_Int2_UInt1 =
+ TSymbolUniqueId(4949);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImage1DArray1_Int2_UInt1 =
+ TSymbolUniqueId(4950);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_ImageRect1_Int2_UInt1 =
+ TSymbolUniqueId(4951);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImageRect1_Int2_UInt1 =
+ TSymbolUniqueId(4952);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImageRect1_Int2_UInt1 =
+ TSymbolUniqueId(4953);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_Image2DMS1_Int2_Int1_UInt1 =
+ TSymbolUniqueId(4954);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImage2DMS1_Int2_Int1_UInt1 =
+ TSymbolUniqueId(4955);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImage2DMS1_Int2_Int1_UInt1 =
+ TSymbolUniqueId(4956);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_Image2DMSArray1_Int3_Int1_UInt1 =
+ TSymbolUniqueId(4957);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImage2DMSArray1_Int3_Int1_UInt1 =
+ TSymbolUniqueId(4958);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImage2DMSArray1_Int3_Int1_UInt1 =
+ TSymbolUniqueId(4959);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_Image2D1_Int2_Int1 =
+ TSymbolUniqueId(4960);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImage2D1_Int2_Int1 =
+ TSymbolUniqueId(4961);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImage2D1_Int2_Int1 =
+ TSymbolUniqueId(4962);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_Image3D1_Int3_Int1 =
+ TSymbolUniqueId(4963);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImage3D1_Int3_Int1 =
+ TSymbolUniqueId(4964);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImage3D1_Int3_Int1 =
+ TSymbolUniqueId(4965);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_ImageCube1_Int3_Int1 =
+ TSymbolUniqueId(4966);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImageCube1_Int3_Int1 =
+ TSymbolUniqueId(4967);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImageCube1_Int3_Int1 =
+ TSymbolUniqueId(4968);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_ImageBuffer1_Int1_Int1 =
+ TSymbolUniqueId(4969);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImageBuffer1_Int1_Int1 =
+ TSymbolUniqueId(4970);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImageBuffer1_Int1_Int1 =
+ TSymbolUniqueId(4971);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_Image2DArray1_Int3_Int1 =
+ TSymbolUniqueId(4972);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImage2DArray1_Int3_Int1 =
+ TSymbolUniqueId(4973);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImage2DArray1_Int3_Int1 =
+ TSymbolUniqueId(4974);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_ImageCubeArray1_Int3_Int1 =
+ TSymbolUniqueId(4975);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImageCubeArray1_Int3_Int1 =
+ TSymbolUniqueId(4976);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImageCubeArray1_Int3_Int1 =
+ TSymbolUniqueId(4977);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_Image1D1_Int1_Int1 =
+ TSymbolUniqueId(4978);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImage1D1_Int1_Int1 =
+ TSymbolUniqueId(4979);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImage1D1_Int1_Int1 =
+ TSymbolUniqueId(4980);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_Image1DArray1_Int2_Int1 =
+ TSymbolUniqueId(4981);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImage1DArray1_Int2_Int1 =
+ TSymbolUniqueId(4982);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImage1DArray1_Int2_Int1 =
+ TSymbolUniqueId(4983);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_ImageRect1_Int2_Int1 =
+ TSymbolUniqueId(4984);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImageRect1_Int2_Int1 =
+ TSymbolUniqueId(4985);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImageRect1_Int2_Int1 =
+ TSymbolUniqueId(4986);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_Image2DMS1_Int2_Int1_Int1 =
+ TSymbolUniqueId(4987);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImage2DMS1_Int2_Int1_Int1 =
+ TSymbolUniqueId(4988);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImage2DMS1_Int2_Int1_Int1 =
+ TSymbolUniqueId(4989);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_Image2DMSArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(4990);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImage2DMSArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(4991);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImage2DMSArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(4992);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_Image2D1_Int2_UInt1 =
+ TSymbolUniqueId(4993);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_IImage2D1_Int2_UInt1 =
+ TSymbolUniqueId(4994);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_UImage2D1_Int2_UInt1 =
+ TSymbolUniqueId(4995);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_Image3D1_Int3_UInt1 =
+ TSymbolUniqueId(4996);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_IImage3D1_Int3_UInt1 =
+ TSymbolUniqueId(4997);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_UImage3D1_Int3_UInt1 =
+ TSymbolUniqueId(4998);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_ImageCube1_Int3_UInt1 =
+ TSymbolUniqueId(4999);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_IImageCube1_Int3_UInt1 =
+ TSymbolUniqueId(5000);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_UImageCube1_Int3_UInt1 =
+ TSymbolUniqueId(5001);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_ImageBuffer1_Int1_UInt1 =
+ TSymbolUniqueId(5002);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_IImageBuffer1_Int1_UInt1 =
+ TSymbolUniqueId(5003);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_UImageBuffer1_Int1_UInt1 =
+ TSymbolUniqueId(5004);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_Image2DArray1_Int3_UInt1 =
+ TSymbolUniqueId(5005);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_IImage2DArray1_Int3_UInt1 =
+ TSymbolUniqueId(5006);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_UImage2DArray1_Int3_UInt1 =
+ TSymbolUniqueId(5007);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_ImageCubeArray1_Int3_UInt1 =
+ TSymbolUniqueId(5008);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_IImageCubeArray1_Int3_UInt1 =
+ TSymbolUniqueId(5009);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_UImageCubeArray1_Int3_UInt1 =
+ TSymbolUniqueId(5010);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_Image1D1_Int1_UInt1 =
+ TSymbolUniqueId(5011);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_IImage1D1_Int1_UInt1 =
+ TSymbolUniqueId(5012);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_UImage1D1_Int1_UInt1 =
+ TSymbolUniqueId(5013);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_Image1DArray1_Int2_UInt1 =
+ TSymbolUniqueId(5014);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_IImage1DArray1_Int2_UInt1 =
+ TSymbolUniqueId(5015);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_UImage1DArray1_Int2_UInt1 =
+ TSymbolUniqueId(5016);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_ImageRect1_Int2_UInt1 =
+ TSymbolUniqueId(5017);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_IImageRect1_Int2_UInt1 =
+ TSymbolUniqueId(5018);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_UImageRect1_Int2_UInt1 =
+ TSymbolUniqueId(5019);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_Image2DMS1_Int2_Int1_UInt1 =
+ TSymbolUniqueId(5020);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_IImage2DMS1_Int2_Int1_UInt1 =
+ TSymbolUniqueId(5021);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_UImage2DMS1_Int2_Int1_UInt1 =
+ TSymbolUniqueId(5022);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_Image2DMSArray1_Int3_Int1_UInt1 =
+ TSymbolUniqueId(5023);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_IImage2DMSArray1_Int3_Int1_UInt1 =
+ TSymbolUniqueId(5024);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_UImage2DMSArray1_Int3_Int1_UInt1 =
+ TSymbolUniqueId(5025);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_Image2D1_Int2_Int1 =
+ TSymbolUniqueId(5026);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_IImage2D1_Int2_Int1 =
+ TSymbolUniqueId(5027);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_UImage2D1_Int2_Int1 =
+ TSymbolUniqueId(5028);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_Image3D1_Int3_Int1 =
+ TSymbolUniqueId(5029);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_IImage3D1_Int3_Int1 =
+ TSymbolUniqueId(5030);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_UImage3D1_Int3_Int1 =
+ TSymbolUniqueId(5031);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_ImageCube1_Int3_Int1 =
+ TSymbolUniqueId(5032);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_IImageCube1_Int3_Int1 =
+ TSymbolUniqueId(5033);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_UImageCube1_Int3_Int1 =
+ TSymbolUniqueId(5034);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_ImageBuffer1_Int1_Int1 =
+ TSymbolUniqueId(5035);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_IImageBuffer1_Int1_Int1 =
+ TSymbolUniqueId(5036);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_UImageBuffer1_Int1_Int1 =
+ TSymbolUniqueId(5037);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_Image2DArray1_Int3_Int1 =
+ TSymbolUniqueId(5038);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_IImage2DArray1_Int3_Int1 =
+ TSymbolUniqueId(5039);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_UImage2DArray1_Int3_Int1 =
+ TSymbolUniqueId(5040);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_ImageCubeArray1_Int3_Int1 =
+ TSymbolUniqueId(5041);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_IImageCubeArray1_Int3_Int1 =
+ TSymbolUniqueId(5042);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_UImageCubeArray1_Int3_Int1 =
+ TSymbolUniqueId(5043);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_Image1D1_Int1_Int1 =
+ TSymbolUniqueId(5044);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_IImage1D1_Int1_Int1 =
+ TSymbolUniqueId(5045);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_UImage1D1_Int1_Int1 =
+ TSymbolUniqueId(5046);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_Image1DArray1_Int2_Int1 =
+ TSymbolUniqueId(5047);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_IImage1DArray1_Int2_Int1 =
+ TSymbolUniqueId(5048);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_UImage1DArray1_Int2_Int1 =
+ TSymbolUniqueId(5049);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_ImageRect1_Int2_Int1 =
+ TSymbolUniqueId(5050);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_IImageRect1_Int2_Int1 =
+ TSymbolUniqueId(5051);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_UImageRect1_Int2_Int1 =
+ TSymbolUniqueId(5052);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_Image2DMS1_Int2_Int1_Int1 =
+ TSymbolUniqueId(5053);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_IImage2DMS1_Int2_Int1_Int1 =
+ TSymbolUniqueId(5054);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_UImage2DMS1_Int2_Int1_Int1 =
+ TSymbolUniqueId(5055);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_Image2DMSArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(5056);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_IImage2DMSArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(5057);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_UImage2DMSArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(5058);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_Image2D1_Int2_UInt1 =
+ TSymbolUniqueId(5059);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_IImage2D1_Int2_UInt1 =
+ TSymbolUniqueId(5060);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_UImage2D1_Int2_UInt1 =
+ TSymbolUniqueId(5061);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_Image3D1_Int3_UInt1 =
+ TSymbolUniqueId(5062);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_IImage3D1_Int3_UInt1 =
+ TSymbolUniqueId(5063);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_UImage3D1_Int3_UInt1 =
+ TSymbolUniqueId(5064);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_ImageCube1_Int3_UInt1 =
+ TSymbolUniqueId(5065);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_IImageCube1_Int3_UInt1 =
+ TSymbolUniqueId(5066);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_UImageCube1_Int3_UInt1 =
+ TSymbolUniqueId(5067);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_ImageBuffer1_Int1_UInt1 =
+ TSymbolUniqueId(5068);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_IImageBuffer1_Int1_UInt1 =
+ TSymbolUniqueId(5069);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_UImageBuffer1_Int1_UInt1 =
+ TSymbolUniqueId(5070);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_Image2DArray1_Int3_UInt1 =
+ TSymbolUniqueId(5071);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_IImage2DArray1_Int3_UInt1 =
+ TSymbolUniqueId(5072);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_UImage2DArray1_Int3_UInt1 =
+ TSymbolUniqueId(5073);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_ImageCubeArray1_Int3_UInt1 =
+ TSymbolUniqueId(5074);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_IImageCubeArray1_Int3_UInt1 =
+ TSymbolUniqueId(5075);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_UImageCubeArray1_Int3_UInt1 =
+ TSymbolUniqueId(5076);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_Image1D1_Int1_UInt1 =
+ TSymbolUniqueId(5077);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_IImage1D1_Int1_UInt1 =
+ TSymbolUniqueId(5078);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_UImage1D1_Int1_UInt1 =
+ TSymbolUniqueId(5079);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_Image1DArray1_Int2_UInt1 =
+ TSymbolUniqueId(5080);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_IImage1DArray1_Int2_UInt1 =
+ TSymbolUniqueId(5081);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_UImage1DArray1_Int2_UInt1 =
+ TSymbolUniqueId(5082);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_ImageRect1_Int2_UInt1 =
+ TSymbolUniqueId(5083);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_IImageRect1_Int2_UInt1 =
+ TSymbolUniqueId(5084);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_UImageRect1_Int2_UInt1 =
+ TSymbolUniqueId(5085);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_Image2DMS1_Int2_Int1_UInt1 =
+ TSymbolUniqueId(5086);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_IImage2DMS1_Int2_Int1_UInt1 =
+ TSymbolUniqueId(5087);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_UImage2DMS1_Int2_Int1_UInt1 =
+ TSymbolUniqueId(5088);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_Image2DMSArray1_Int3_Int1_UInt1 =
+ TSymbolUniqueId(5089);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_IImage2DMSArray1_Int3_Int1_UInt1 =
+ TSymbolUniqueId(5090);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_UImage2DMSArray1_Int3_Int1_UInt1 =
+ TSymbolUniqueId(5091);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_Image2D1_Int2_Int1 =
+ TSymbolUniqueId(5092);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_IImage2D1_Int2_Int1 =
+ TSymbolUniqueId(5093);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_UImage2D1_Int2_Int1 =
+ TSymbolUniqueId(5094);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_Image3D1_Int3_Int1 =
+ TSymbolUniqueId(5095);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_IImage3D1_Int3_Int1 =
+ TSymbolUniqueId(5096);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_UImage3D1_Int3_Int1 =
+ TSymbolUniqueId(5097);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_ImageCube1_Int3_Int1 =
+ TSymbolUniqueId(5098);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_IImageCube1_Int3_Int1 =
+ TSymbolUniqueId(5099);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_UImageCube1_Int3_Int1 =
+ TSymbolUniqueId(5100);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_ImageBuffer1_Int1_Int1 =
+ TSymbolUniqueId(5101);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_IImageBuffer1_Int1_Int1 =
+ TSymbolUniqueId(5102);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_UImageBuffer1_Int1_Int1 =
+ TSymbolUniqueId(5103);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_Image2DArray1_Int3_Int1 =
+ TSymbolUniqueId(5104);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_IImage2DArray1_Int3_Int1 =
+ TSymbolUniqueId(5105);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_UImage2DArray1_Int3_Int1 =
+ TSymbolUniqueId(5106);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_ImageCubeArray1_Int3_Int1 =
+ TSymbolUniqueId(5107);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_IImageCubeArray1_Int3_Int1 =
+ TSymbolUniqueId(5108);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_UImageCubeArray1_Int3_Int1 =
+ TSymbolUniqueId(5109);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_Image1D1_Int1_Int1 =
+ TSymbolUniqueId(5110);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_IImage1D1_Int1_Int1 =
+ TSymbolUniqueId(5111);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_UImage1D1_Int1_Int1 =
+ TSymbolUniqueId(5112);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_Image1DArray1_Int2_Int1 =
+ TSymbolUniqueId(5113);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_IImage1DArray1_Int2_Int1 =
+ TSymbolUniqueId(5114);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_UImage1DArray1_Int2_Int1 =
+ TSymbolUniqueId(5115);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_ImageRect1_Int2_Int1 =
+ TSymbolUniqueId(5116);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_IImageRect1_Int2_Int1 =
+ TSymbolUniqueId(5117);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_UImageRect1_Int2_Int1 =
+ TSymbolUniqueId(5118);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_Image2DMS1_Int2_Int1_Int1 =
+ TSymbolUniqueId(5119);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_IImage2DMS1_Int2_Int1_Int1 =
+ TSymbolUniqueId(5120);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_UImage2DMS1_Int2_Int1_Int1 =
+ TSymbolUniqueId(5121);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_Image2DMSArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(5122);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_IImage2DMSArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(5123);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_UImage2DMSArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(5124);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_Image2D1_Int2_UInt1 =
+ TSymbolUniqueId(5125);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_IImage2D1_Int2_UInt1 =
+ TSymbolUniqueId(5126);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_UImage2D1_Int2_UInt1 =
+ TSymbolUniqueId(5127);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_Image3D1_Int3_UInt1 =
+ TSymbolUniqueId(5128);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_IImage3D1_Int3_UInt1 =
+ TSymbolUniqueId(5129);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_UImage3D1_Int3_UInt1 =
+ TSymbolUniqueId(5130);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_ImageCube1_Int3_UInt1 =
+ TSymbolUniqueId(5131);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_IImageCube1_Int3_UInt1 =
+ TSymbolUniqueId(5132);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_UImageCube1_Int3_UInt1 =
+ TSymbolUniqueId(5133);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_ImageBuffer1_Int1_UInt1 =
+ TSymbolUniqueId(5134);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_IImageBuffer1_Int1_UInt1 =
+ TSymbolUniqueId(5135);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_UImageBuffer1_Int1_UInt1 =
+ TSymbolUniqueId(5136);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_Image2DArray1_Int3_UInt1 =
+ TSymbolUniqueId(5137);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_IImage2DArray1_Int3_UInt1 =
+ TSymbolUniqueId(5138);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_UImage2DArray1_Int3_UInt1 =
+ TSymbolUniqueId(5139);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_ImageCubeArray1_Int3_UInt1 =
+ TSymbolUniqueId(5140);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_IImageCubeArray1_Int3_UInt1 =
+ TSymbolUniqueId(5141);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_UImageCubeArray1_Int3_UInt1 =
+ TSymbolUniqueId(5142);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_Image1D1_Int1_UInt1 =
+ TSymbolUniqueId(5143);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_IImage1D1_Int1_UInt1 =
+ TSymbolUniqueId(5144);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_UImage1D1_Int1_UInt1 =
+ TSymbolUniqueId(5145);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_Image1DArray1_Int2_UInt1 =
+ TSymbolUniqueId(5146);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_IImage1DArray1_Int2_UInt1 =
+ TSymbolUniqueId(5147);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_UImage1DArray1_Int2_UInt1 =
+ TSymbolUniqueId(5148);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_ImageRect1_Int2_UInt1 =
+ TSymbolUniqueId(5149);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_IImageRect1_Int2_UInt1 =
+ TSymbolUniqueId(5150);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_UImageRect1_Int2_UInt1 =
+ TSymbolUniqueId(5151);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_Image2DMS1_Int2_Int1_UInt1 =
+ TSymbolUniqueId(5152);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_IImage2DMS1_Int2_Int1_UInt1 =
+ TSymbolUniqueId(5153);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_UImage2DMS1_Int2_Int1_UInt1 =
+ TSymbolUniqueId(5154);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_Image2DMSArray1_Int3_Int1_UInt1 =
+ TSymbolUniqueId(5155);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_IImage2DMSArray1_Int3_Int1_UInt1 =
+ TSymbolUniqueId(5156);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_UImage2DMSArray1_Int3_Int1_UInt1 =
+ TSymbolUniqueId(5157);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_Image2D1_Int2_Int1 =
+ TSymbolUniqueId(5158);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_IImage2D1_Int2_Int1 =
+ TSymbolUniqueId(5159);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_UImage2D1_Int2_Int1 =
+ TSymbolUniqueId(5160);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_Image3D1_Int3_Int1 =
+ TSymbolUniqueId(5161);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_IImage3D1_Int3_Int1 =
+ TSymbolUniqueId(5162);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_UImage3D1_Int3_Int1 =
+ TSymbolUniqueId(5163);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_ImageCube1_Int3_Int1 =
+ TSymbolUniqueId(5164);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_IImageCube1_Int3_Int1 =
+ TSymbolUniqueId(5165);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_UImageCube1_Int3_Int1 =
+ TSymbolUniqueId(5166);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_ImageBuffer1_Int1_Int1 =
+ TSymbolUniqueId(5167);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_IImageBuffer1_Int1_Int1 =
+ TSymbolUniqueId(5168);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_UImageBuffer1_Int1_Int1 =
+ TSymbolUniqueId(5169);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_Image2DArray1_Int3_Int1 =
+ TSymbolUniqueId(5170);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_IImage2DArray1_Int3_Int1 =
+ TSymbolUniqueId(5171);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_UImage2DArray1_Int3_Int1 =
+ TSymbolUniqueId(5172);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_ImageCubeArray1_Int3_Int1 =
+ TSymbolUniqueId(5173);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_IImageCubeArray1_Int3_Int1 =
+ TSymbolUniqueId(5174);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_UImageCubeArray1_Int3_Int1 =
+ TSymbolUniqueId(5175);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_Image1D1_Int1_Int1 =
+ TSymbolUniqueId(5176);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_IImage1D1_Int1_Int1 =
+ TSymbolUniqueId(5177);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_UImage1D1_Int1_Int1 =
+ TSymbolUniqueId(5178);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_Image1DArray1_Int2_Int1 =
+ TSymbolUniqueId(5179);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_IImage1DArray1_Int2_Int1 =
+ TSymbolUniqueId(5180);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_UImage1DArray1_Int2_Int1 =
+ TSymbolUniqueId(5181);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_ImageRect1_Int2_Int1 =
+ TSymbolUniqueId(5182);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_IImageRect1_Int2_Int1 =
+ TSymbolUniqueId(5183);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_UImageRect1_Int2_Int1 =
+ TSymbolUniqueId(5184);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_Image2DMS1_Int2_Int1_Int1 =
+ TSymbolUniqueId(5185);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_IImage2DMS1_Int2_Int1_Int1 =
+ TSymbolUniqueId(5186);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_UImage2DMS1_Int2_Int1_Int1 =
+ TSymbolUniqueId(5187);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_Image2DMSArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(5188);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_IImage2DMSArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(5189);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_UImage2DMSArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(5190);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image2D1_Int2_UInt1 =
+ TSymbolUniqueId(5191);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage2D1_Int2_UInt1 =
+ TSymbolUniqueId(5192);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage2D1_Int2_UInt1 =
+ TSymbolUniqueId(5193);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image3D1_Int3_UInt1 =
+ TSymbolUniqueId(5194);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage3D1_Int3_UInt1 =
+ TSymbolUniqueId(5195);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage3D1_Int3_UInt1 =
+ TSymbolUniqueId(5196);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_ImageCube1_Int3_UInt1 =
+ TSymbolUniqueId(5197);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImageCube1_Int3_UInt1 =
+ TSymbolUniqueId(5198);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImageCube1_Int3_UInt1 =
+ TSymbolUniqueId(5199);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_ImageBuffer1_Int1_UInt1 =
+ TSymbolUniqueId(5200);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImageBuffer1_Int1_UInt1 =
+ TSymbolUniqueId(5201);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImageBuffer1_Int1_UInt1 =
+ TSymbolUniqueId(5202);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image2DArray1_Int3_UInt1 =
+ TSymbolUniqueId(5203);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage2DArray1_Int3_UInt1 =
+ TSymbolUniqueId(5204);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage2DArray1_Int3_UInt1 =
+ TSymbolUniqueId(5205);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_ImageCubeArray1_Int3_UInt1 =
+ TSymbolUniqueId(5206);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImageCubeArray1_Int3_UInt1 =
+ TSymbolUniqueId(5207);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImageCubeArray1_Int3_UInt1 =
+ TSymbolUniqueId(5208);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image1D1_Int1_UInt1 =
+ TSymbolUniqueId(5209);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage1D1_Int1_UInt1 =
+ TSymbolUniqueId(5210);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage1D1_Int1_UInt1 =
+ TSymbolUniqueId(5211);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image1DArray1_Int2_UInt1 =
+ TSymbolUniqueId(5212);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage1DArray1_Int2_UInt1 =
+ TSymbolUniqueId(5213);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage1DArray1_Int2_UInt1 =
+ TSymbolUniqueId(5214);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_ImageRect1_Int2_UInt1 =
+ TSymbolUniqueId(5215);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImageRect1_Int2_UInt1 =
+ TSymbolUniqueId(5216);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImageRect1_Int2_UInt1 =
+ TSymbolUniqueId(5217);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image2DMS1_Int2_Int1_UInt1 =
+ TSymbolUniqueId(5218);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage2DMS1_Int2_Int1_UInt1 =
+ TSymbolUniqueId(5219);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage2DMS1_Int2_Int1_UInt1 =
+ TSymbolUniqueId(5220);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image2DMSArray1_Int3_Int1_UInt1 =
+ TSymbolUniqueId(5221);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage2DMSArray1_Int3_Int1_UInt1 =
+ TSymbolUniqueId(5222);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage2DMSArray1_Int3_Int1_UInt1 =
+ TSymbolUniqueId(5223);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image2D1_Int2_Int1 =
+ TSymbolUniqueId(5224);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage2D1_Int2_Int1 =
+ TSymbolUniqueId(5225);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage2D1_Int2_Int1 =
+ TSymbolUniqueId(5226);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image3D1_Int3_Int1 =
+ TSymbolUniqueId(5227);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage3D1_Int3_Int1 =
+ TSymbolUniqueId(5228);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage3D1_Int3_Int1 =
+ TSymbolUniqueId(5229);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_ImageCube1_Int3_Int1 =
+ TSymbolUniqueId(5230);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImageCube1_Int3_Int1 =
+ TSymbolUniqueId(5231);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImageCube1_Int3_Int1 =
+ TSymbolUniqueId(5232);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_ImageBuffer1_Int1_Int1 =
+ TSymbolUniqueId(5233);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImageBuffer1_Int1_Int1 =
+ TSymbolUniqueId(5234);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImageBuffer1_Int1_Int1 =
+ TSymbolUniqueId(5235);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image2DArray1_Int3_Int1 =
+ TSymbolUniqueId(5236);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage2DArray1_Int3_Int1 =
+ TSymbolUniqueId(5237);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage2DArray1_Int3_Int1 =
+ TSymbolUniqueId(5238);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_ImageCubeArray1_Int3_Int1 =
+ TSymbolUniqueId(5239);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImageCubeArray1_Int3_Int1 =
+ TSymbolUniqueId(5240);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImageCubeArray1_Int3_Int1 =
+ TSymbolUniqueId(5241);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image1D1_Int1_Int1 =
+ TSymbolUniqueId(5242);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage1D1_Int1_Int1 =
+ TSymbolUniqueId(5243);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage1D1_Int1_Int1 =
+ TSymbolUniqueId(5244);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image1DArray1_Int2_Int1 =
+ TSymbolUniqueId(5245);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage1DArray1_Int2_Int1 =
+ TSymbolUniqueId(5246);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage1DArray1_Int2_Int1 =
+ TSymbolUniqueId(5247);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_ImageRect1_Int2_Int1 =
+ TSymbolUniqueId(5248);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImageRect1_Int2_Int1 =
+ TSymbolUniqueId(5249);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImageRect1_Int2_Int1 =
+ TSymbolUniqueId(5250);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image2DMS1_Int2_Int1_Int1 =
+ TSymbolUniqueId(5251);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage2DMS1_Int2_Int1_Int1 =
+ TSymbolUniqueId(5252);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage2DMS1_Int2_Int1_Int1 =
+ TSymbolUniqueId(5253);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image2DMSArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(5254);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage2DMSArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(5255);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage2DMSArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(5256);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image2D1_Int2_Float1 =
+ TSymbolUniqueId(5257);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage2D1_Int2_Float1 =
+ TSymbolUniqueId(5258);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage2D1_Int2_Float1 =
+ TSymbolUniqueId(5259);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image3D1_Int3_Float1 =
+ TSymbolUniqueId(5260);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage3D1_Int3_Float1 =
+ TSymbolUniqueId(5261);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage3D1_Int3_Float1 =
+ TSymbolUniqueId(5262);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_ImageCube1_Int3_Float1 =
+ TSymbolUniqueId(5263);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImageCube1_Int3_Float1 =
+ TSymbolUniqueId(5264);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImageCube1_Int3_Float1 =
+ TSymbolUniqueId(5265);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_ImageBuffer1_Int1_Float1 =
+ TSymbolUniqueId(5266);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImageBuffer1_Int1_Float1 =
+ TSymbolUniqueId(5267);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImageBuffer1_Int1_Float1 =
+ TSymbolUniqueId(5268);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image2DArray1_Int3_Float1 =
+ TSymbolUniqueId(5269);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage2DArray1_Int3_Float1 =
+ TSymbolUniqueId(5270);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage2DArray1_Int3_Float1 =
+ TSymbolUniqueId(5271);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_ImageCubeArray1_Int3_Float1 =
+ TSymbolUniqueId(5272);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImageCubeArray1_Int3_Float1 =
+ TSymbolUniqueId(5273);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImageCubeArray1_Int3_Float1 =
+ TSymbolUniqueId(5274);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image1D1_Int1_Float1 =
+ TSymbolUniqueId(5275);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage1D1_Int1_Float1 =
+ TSymbolUniqueId(5276);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage1D1_Int1_Float1 =
+ TSymbolUniqueId(5277);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image1DArray1_Int2_Float1 =
+ TSymbolUniqueId(5278);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage1DArray1_Int2_Float1 =
+ TSymbolUniqueId(5279);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage1DArray1_Int2_Float1 =
+ TSymbolUniqueId(5280);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_ImageRect1_Int2_Float1 =
+ TSymbolUniqueId(5281);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImageRect1_Int2_Float1 =
+ TSymbolUniqueId(5282);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImageRect1_Int2_Float1 =
+ TSymbolUniqueId(5283);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image2DMS1_Int2_Int1_Float1 =
+ TSymbolUniqueId(5284);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage2DMS1_Int2_Int1_Float1 =
+ TSymbolUniqueId(5285);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage2DMS1_Int2_Int1_Float1 =
+ TSymbolUniqueId(5286);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image2DMSArray1_Int3_Int1_Float1 =
+ TSymbolUniqueId(5287);
+ static constexpr const TSymbolUniqueId
+ imageAtomicExchangeExt_IImage2DMSArray1_Int3_Int1_Float1 = TSymbolUniqueId(5288);
+ static constexpr const TSymbolUniqueId
+ imageAtomicExchangeExt_UImage2DMSArray1_Int3_Int1_Float1 = TSymbolUniqueId(5289);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_Image2D1_Int2_UInt1_UInt1 =
+ TSymbolUniqueId(5290);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImage2D1_Int2_UInt1_UInt1 =
+ TSymbolUniqueId(5291);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImage2D1_Int2_UInt1_UInt1 =
+ TSymbolUniqueId(5292);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_Image3D1_Int3_UInt1_UInt1 =
+ TSymbolUniqueId(5293);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImage3D1_Int3_UInt1_UInt1 =
+ TSymbolUniqueId(5294);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImage3D1_Int3_UInt1_UInt1 =
+ TSymbolUniqueId(5295);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_ImageCube1_Int3_UInt1_UInt1 =
+ TSymbolUniqueId(5296);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImageCube1_Int3_UInt1_UInt1 =
+ TSymbolUniqueId(5297);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImageCube1_Int3_UInt1_UInt1 =
+ TSymbolUniqueId(5298);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_ImageBuffer1_Int1_UInt1_UInt1 =
+ TSymbolUniqueId(5299);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImageBuffer1_Int1_UInt1_UInt1 =
+ TSymbolUniqueId(5300);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImageBuffer1_Int1_UInt1_UInt1 =
+ TSymbolUniqueId(5301);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_Image2DArray1_Int3_UInt1_UInt1 =
+ TSymbolUniqueId(5302);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImage2DArray1_Int3_UInt1_UInt1 =
+ TSymbolUniqueId(5303);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImage2DArray1_Int3_UInt1_UInt1 =
+ TSymbolUniqueId(5304);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_ImageCubeArray1_Int3_UInt1_UInt1 =
+ TSymbolUniqueId(5305);
+ static constexpr const TSymbolUniqueId
+ imageAtomicCompSwapExt_IImageCubeArray1_Int3_UInt1_UInt1 = TSymbolUniqueId(5306);
+ static constexpr const TSymbolUniqueId
+ imageAtomicCompSwapExt_UImageCubeArray1_Int3_UInt1_UInt1 = TSymbolUniqueId(5307);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_Image1D1_Int1_UInt1_UInt1 =
+ TSymbolUniqueId(5308);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImage1D1_Int1_UInt1_UInt1 =
+ TSymbolUniqueId(5309);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImage1D1_Int1_UInt1_UInt1 =
+ TSymbolUniqueId(5310);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_Image1DArray1_Int2_UInt1_UInt1 =
+ TSymbolUniqueId(5311);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImage1DArray1_Int2_UInt1_UInt1 =
+ TSymbolUniqueId(5312);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImage1DArray1_Int2_UInt1_UInt1 =
+ TSymbolUniqueId(5313);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_ImageRect1_Int2_UInt1_UInt1 =
+ TSymbolUniqueId(5314);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImageRect1_Int2_UInt1_UInt1 =
+ TSymbolUniqueId(5315);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImageRect1_Int2_UInt1_UInt1 =
+ TSymbolUniqueId(5316);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_Image2DMS1_Int2_Int1_UInt1_UInt1 =
+ TSymbolUniqueId(5317);
+ static constexpr const TSymbolUniqueId
+ imageAtomicCompSwapExt_IImage2DMS1_Int2_Int1_UInt1_UInt1 = TSymbolUniqueId(5318);
+ static constexpr const TSymbolUniqueId
+ imageAtomicCompSwapExt_UImage2DMS1_Int2_Int1_UInt1_UInt1 = TSymbolUniqueId(5319);
+ static constexpr const TSymbolUniqueId
+ imageAtomicCompSwapExt_Image2DMSArray1_Int3_Int1_UInt1_UInt1 = TSymbolUniqueId(5320);
+ static constexpr const TSymbolUniqueId
+ imageAtomicCompSwapExt_IImage2DMSArray1_Int3_Int1_UInt1_UInt1 = TSymbolUniqueId(5321);
+ static constexpr const TSymbolUniqueId
+ imageAtomicCompSwapExt_UImage2DMSArray1_Int3_Int1_UInt1_UInt1 = TSymbolUniqueId(5322);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_Image2D1_Int2_Int1_Int1 =
+ TSymbolUniqueId(5323);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImage2D1_Int2_Int1_Int1 =
+ TSymbolUniqueId(5324);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImage2D1_Int2_Int1_Int1 =
+ TSymbolUniqueId(5325);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_Image3D1_Int3_Int1_Int1 =
+ TSymbolUniqueId(5326);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImage3D1_Int3_Int1_Int1 =
+ TSymbolUniqueId(5327);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImage3D1_Int3_Int1_Int1 =
+ TSymbolUniqueId(5328);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_ImageCube1_Int3_Int1_Int1 =
+ TSymbolUniqueId(5329);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImageCube1_Int3_Int1_Int1 =
+ TSymbolUniqueId(5330);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImageCube1_Int3_Int1_Int1 =
+ TSymbolUniqueId(5331);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_ImageBuffer1_Int1_Int1_Int1 =
+ TSymbolUniqueId(5332);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImageBuffer1_Int1_Int1_Int1 =
+ TSymbolUniqueId(5333);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImageBuffer1_Int1_Int1_Int1 =
+ TSymbolUniqueId(5334);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_Image2DArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(5335);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImage2DArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(5336);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImage2DArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(5337);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_ImageCubeArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(5338);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImageCubeArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(5339);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImageCubeArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(5340);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_Image1D1_Int1_Int1_Int1 =
+ TSymbolUniqueId(5341);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImage1D1_Int1_Int1_Int1 =
+ TSymbolUniqueId(5342);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImage1D1_Int1_Int1_Int1 =
+ TSymbolUniqueId(5343);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_Image1DArray1_Int2_Int1_Int1 =
+ TSymbolUniqueId(5344);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImage1DArray1_Int2_Int1_Int1 =
+ TSymbolUniqueId(5345);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImage1DArray1_Int2_Int1_Int1 =
+ TSymbolUniqueId(5346);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_ImageRect1_Int2_Int1_Int1 =
+ TSymbolUniqueId(5347);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImageRect1_Int2_Int1_Int1 =
+ TSymbolUniqueId(5348);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImageRect1_Int2_Int1_Int1 =
+ TSymbolUniqueId(5349);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_Image2DMS1_Int2_Int1_Int1_Int1 =
+ TSymbolUniqueId(5350);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImage2DMS1_Int2_Int1_Int1_Int1 =
+ TSymbolUniqueId(5351);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImage2DMS1_Int2_Int1_Int1_Int1 =
+ TSymbolUniqueId(5352);
+ static constexpr const TSymbolUniqueId
+ imageAtomicCompSwapExt_Image2DMSArray1_Int3_Int1_Int1_Int1 = TSymbolUniqueId(5353);
+ static constexpr const TSymbolUniqueId
+ imageAtomicCompSwapExt_IImage2DMSArray1_Int3_Int1_Int1_Int1 = TSymbolUniqueId(5354);
+ static constexpr const TSymbolUniqueId
+ imageAtomicCompSwapExt_UImage2DMSArray1_Int3_Int1_Int1_Int1 = TSymbolUniqueId(5355);
+ static constexpr const TSymbolUniqueId pixelLocalLoadANGLE_PixelLocalANGLE1 =
+ TSymbolUniqueId(5356);
+ static constexpr const TSymbolUniqueId pt01g = TSymbolUniqueId(5357);
+ static constexpr const TSymbolUniqueId pixelLocalLoadANGLE_IPixelLocalANGLE1 =
+ TSymbolUniqueId(5358);
+ static constexpr const TSymbolUniqueId pt01h = TSymbolUniqueId(5359);
+ static constexpr const TSymbolUniqueId pixelLocalLoadANGLE_UPixelLocalANGLE1 =
+ TSymbolUniqueId(5360);
+ static constexpr const TSymbolUniqueId pt01i = TSymbolUniqueId(5361);
+ static constexpr const TSymbolUniqueId pixelLocalStoreANGLE_PixelLocalANGLE1_Float4 =
+ TSymbolUniqueId(5362);
+ static constexpr const TSymbolUniqueId pixelLocalStoreANGLE_IPixelLocalANGLE1_Int4 =
+ TSymbolUniqueId(5363);
+ static constexpr const TSymbolUniqueId pixelLocalStoreANGLE_UPixelLocalANGLE1_UInt4 =
+ TSymbolUniqueId(5364);
+ static constexpr const TSymbolUniqueId beginInvocationInterlockNV = TSymbolUniqueId(5365);
+ static constexpr const TSymbolUniqueId endInvocationInterlockNV = TSymbolUniqueId(5366);
+ static constexpr const TSymbolUniqueId beginFragmentShaderOrderingINTEL = TSymbolUniqueId(5367);
+ static constexpr const TSymbolUniqueId beginInvocationInterlockARB = TSymbolUniqueId(5368);
+ static constexpr const TSymbolUniqueId endInvocationInterlockARB = TSymbolUniqueId(5369);
+ static constexpr const TSymbolUniqueId memoryBarrier = TSymbolUniqueId(5370);
+ static constexpr const TSymbolUniqueId memoryBarrierAtomicCounter = TSymbolUniqueId(5371);
+ static constexpr const TSymbolUniqueId memoryBarrierBuffer = TSymbolUniqueId(5372);
+ static constexpr const TSymbolUniqueId memoryBarrierImage = TSymbolUniqueId(5373);
+ static constexpr const TSymbolUniqueId barrier = TSymbolUniqueId(5374);
+ static constexpr const TSymbolUniqueId memoryBarrierShared = TSymbolUniqueId(5375);
+ static constexpr const TSymbolUniqueId groupMemoryBarrier = TSymbolUniqueId(5376);
+ static constexpr const TSymbolUniqueId barrierTCS = TSymbolUniqueId(5377);
+ static constexpr const TSymbolUniqueId barrierTCSES3_2 = TSymbolUniqueId(5378);
+ static constexpr const TSymbolUniqueId EmitVertex = TSymbolUniqueId(5379);
+ static constexpr const TSymbolUniqueId EmitVertexES3_2 = TSymbolUniqueId(5380);
+ static constexpr const TSymbolUniqueId EndPrimitive = TSymbolUniqueId(5381);
+ static constexpr const TSymbolUniqueId EndPrimitiveES3_2 = TSymbolUniqueId(5382);
+ static constexpr const TSymbolUniqueId subpassLoad_SubpassInput1 = TSymbolUniqueId(5383);
+ static constexpr const TSymbolUniqueId pt01j = TSymbolUniqueId(5384);
+ static constexpr const TSymbolUniqueId subpassLoad_ISubpassInput1 = TSymbolUniqueId(5385);
+ static constexpr const TSymbolUniqueId pt01k = TSymbolUniqueId(5386);
+ static constexpr const TSymbolUniqueId subpassLoad_USubpassInput1 = TSymbolUniqueId(5387);
+ static constexpr const TSymbolUniqueId pt01l = TSymbolUniqueId(5388);
+ static constexpr const TSymbolUniqueId subpassLoad_SubpassInputMS1_Int1 = TSymbolUniqueId(5389);
+ static constexpr const TSymbolUniqueId pt01m = TSymbolUniqueId(5390);
+ static constexpr const TSymbolUniqueId subpassLoad_ISubpassInputMS1_Int1 =
+ TSymbolUniqueId(5391);
+ static constexpr const TSymbolUniqueId pt01n = TSymbolUniqueId(5392);
+ static constexpr const TSymbolUniqueId subpassLoad_USubpassInputMS1_Int1 =
+ TSymbolUniqueId(5393);
+ static constexpr const TSymbolUniqueId pt01o = TSymbolUniqueId(5394);
+ static constexpr const TSymbolUniqueId gl_DepthRangeParameters = TSymbolUniqueId(5395);
+ static constexpr const TSymbolUniqueId gl_DepthRange = TSymbolUniqueId(5396);
+ static constexpr const TSymbolUniqueId gl_NumSamples = TSymbolUniqueId(5397);
+ static constexpr const TSymbolUniqueId gl_NumSamplesES3_2 = TSymbolUniqueId(5398);
+ static constexpr const TSymbolUniqueId gl_MaxVertexAttribs = TSymbolUniqueId(5399);
+ static constexpr const TSymbolUniqueId gl_MaxVertexUniformVectors = TSymbolUniqueId(5400);
+ static constexpr const TSymbolUniqueId gl_MaxVertexTextureImageUnits = TSymbolUniqueId(5401);
+ static constexpr const TSymbolUniqueId gl_MaxCombinedTextureImageUnits = TSymbolUniqueId(5402);
+ static constexpr const TSymbolUniqueId gl_MaxTextureImageUnits = TSymbolUniqueId(5403);
+ static constexpr const TSymbolUniqueId gl_MaxFragmentUniformVectors = TSymbolUniqueId(5404);
+ static constexpr const TSymbolUniqueId gl_MaxVaryingVectors = TSymbolUniqueId(5405);
+ static constexpr const TSymbolUniqueId gl_MaxDrawBuffers = TSymbolUniqueId(5406);
+ static constexpr const TSymbolUniqueId gl_MaxDualSourceDrawBuffersEXT = TSymbolUniqueId(5407);
+ static constexpr const TSymbolUniqueId gl_MaxVertexOutputVectors = TSymbolUniqueId(5408);
+ static constexpr const TSymbolUniqueId gl_MaxFragmentInputVectors = TSymbolUniqueId(5409);
+ static constexpr const TSymbolUniqueId gl_MinProgramTexelOffset = TSymbolUniqueId(5410);
+ static constexpr const TSymbolUniqueId gl_MaxProgramTexelOffset = TSymbolUniqueId(5411);
+ static constexpr const TSymbolUniqueId gl_MaxImageUnits = TSymbolUniqueId(5412);
+ static constexpr const TSymbolUniqueId gl_MaxVertexImageUniforms = TSymbolUniqueId(5413);
+ static constexpr const TSymbolUniqueId gl_MaxFragmentImageUniforms = TSymbolUniqueId(5414);
+ static constexpr const TSymbolUniqueId gl_MaxComputeImageUniforms = TSymbolUniqueId(5415);
+ static constexpr const TSymbolUniqueId gl_MaxCombinedImageUniforms = TSymbolUniqueId(5416);
+ static constexpr const TSymbolUniqueId gl_MaxCombinedShaderOutputResources =
+ TSymbolUniqueId(5417);
+ static constexpr const TSymbolUniqueId gl_MaxComputeWorkGroupCount = TSymbolUniqueId(5418);
+ static constexpr const TSymbolUniqueId gl_MaxComputeWorkGroupSize = TSymbolUniqueId(5419);
+ static constexpr const TSymbolUniqueId gl_MaxComputeUniformComponents = TSymbolUniqueId(5420);
+ static constexpr const TSymbolUniqueId gl_MaxComputeTextureImageUnits = TSymbolUniqueId(5421);
+ static constexpr const TSymbolUniqueId gl_MaxComputeAtomicCounters = TSymbolUniqueId(5422);
+ static constexpr const TSymbolUniqueId gl_MaxComputeAtomicCounterBuffers =
+ TSymbolUniqueId(5423);
+ static constexpr const TSymbolUniqueId gl_MaxVertexAtomicCounters = TSymbolUniqueId(5424);
+ static constexpr const TSymbolUniqueId gl_MaxFragmentAtomicCounters = TSymbolUniqueId(5425);
+ static constexpr const TSymbolUniqueId gl_MaxCombinedAtomicCounters = TSymbolUniqueId(5426);
+ static constexpr const TSymbolUniqueId gl_MaxAtomicCounterBindings = TSymbolUniqueId(5427);
+ static constexpr const TSymbolUniqueId gl_MaxVertexAtomicCounterBuffers = TSymbolUniqueId(5428);
+ static constexpr const TSymbolUniqueId gl_MaxFragmentAtomicCounterBuffers =
+ TSymbolUniqueId(5429);
+ static constexpr const TSymbolUniqueId gl_MaxCombinedAtomicCounterBuffers =
+ TSymbolUniqueId(5430);
+ static constexpr const TSymbolUniqueId gl_MaxAtomicCounterBufferSize = TSymbolUniqueId(5431);
+ static constexpr const TSymbolUniqueId gl_MaxGeometryInputComponents = TSymbolUniqueId(5432);
+ static constexpr const TSymbolUniqueId gl_MaxGeometryInputComponentsES3_2 =
+ TSymbolUniqueId(5433);
+ static constexpr const TSymbolUniqueId gl_MaxGeometryOutputComponents = TSymbolUniqueId(5434);
+ static constexpr const TSymbolUniqueId gl_MaxGeometryOutputComponentsES3_2 =
+ TSymbolUniqueId(5435);
+ static constexpr const TSymbolUniqueId gl_MaxGeometryImageUniforms = TSymbolUniqueId(5436);
+ static constexpr const TSymbolUniqueId gl_MaxGeometryImageUniformsES3_2 = TSymbolUniqueId(5437);
+ static constexpr const TSymbolUniqueId gl_MaxGeometryTextureImageUnits = TSymbolUniqueId(5438);
+ static constexpr const TSymbolUniqueId gl_MaxGeometryTextureImageUnitsES3_2 =
+ TSymbolUniqueId(5439);
+ static constexpr const TSymbolUniqueId gl_MaxGeometryOutputVertices = TSymbolUniqueId(5440);
+ static constexpr const TSymbolUniqueId gl_MaxGeometryOutputVerticesES3_2 =
+ TSymbolUniqueId(5441);
+ static constexpr const TSymbolUniqueId gl_MaxGeometryTotalOutputComponents =
+ TSymbolUniqueId(5442);
+ static constexpr const TSymbolUniqueId gl_MaxGeometryTotalOutputComponentsES3_2 =
+ TSymbolUniqueId(5443);
+ static constexpr const TSymbolUniqueId gl_MaxGeometryUniformComponents = TSymbolUniqueId(5444);
+ static constexpr const TSymbolUniqueId gl_MaxGeometryUniformComponentsES3_2 =
+ TSymbolUniqueId(5445);
+ static constexpr const TSymbolUniqueId gl_MaxGeometryAtomicCounters = TSymbolUniqueId(5446);
+ static constexpr const TSymbolUniqueId gl_MaxGeometryAtomicCountersES3_2 =
+ TSymbolUniqueId(5447);
+ static constexpr const TSymbolUniqueId gl_MaxGeometryAtomicCounterBuffers =
+ TSymbolUniqueId(5448);
+ static constexpr const TSymbolUniqueId gl_MaxGeometryAtomicCounterBuffersES3_2 =
+ TSymbolUniqueId(5449);
+ static constexpr const TSymbolUniqueId gl_MaxTessControlInputComponents = TSymbolUniqueId(5450);
+ static constexpr const TSymbolUniqueId gl_MaxTessControlInputComponentsES3_2 =
+ TSymbolUniqueId(5451);
+ static constexpr const TSymbolUniqueId gl_MaxTessControlOutputComponents =
+ TSymbolUniqueId(5452);
+ static constexpr const TSymbolUniqueId gl_MaxTessControlOutputComponentsES3_2 =
+ TSymbolUniqueId(5453);
+ static constexpr const TSymbolUniqueId gl_MaxTessControlTextureImageUnits =
+ TSymbolUniqueId(5454);
+ static constexpr const TSymbolUniqueId gl_MaxTessControlTextureImageUnitsES3_2 =
+ TSymbolUniqueId(5455);
+ static constexpr const TSymbolUniqueId gl_MaxTessControlUniformComponents =
+ TSymbolUniqueId(5456);
+ static constexpr const TSymbolUniqueId gl_MaxTessControlUniformComponentsES3_2 =
+ TSymbolUniqueId(5457);
+ static constexpr const TSymbolUniqueId gl_MaxTessControlTotalOutputComponents =
+ TSymbolUniqueId(5458);
+ static constexpr const TSymbolUniqueId gl_MaxTessControlTotalOutputComponentsES3_2 =
+ TSymbolUniqueId(5459);
+ static constexpr const TSymbolUniqueId gl_MaxTessControlImageUniforms = TSymbolUniqueId(5460);
+ static constexpr const TSymbolUniqueId gl_MaxTessControlImageUniformsES3_2 =
+ TSymbolUniqueId(5461);
+ static constexpr const TSymbolUniqueId gl_MaxTessControlAtomicCounters = TSymbolUniqueId(5462);
+ static constexpr const TSymbolUniqueId gl_MaxTessControlAtomicCountersES3_2 =
+ TSymbolUniqueId(5463);
+ static constexpr const TSymbolUniqueId gl_MaxTessControlAtomicCounterBuffers =
+ TSymbolUniqueId(5464);
+ static constexpr const TSymbolUniqueId gl_MaxTessControlAtomicCounterBuffersES3_2 =
+ TSymbolUniqueId(5465);
+ static constexpr const TSymbolUniqueId gl_MaxTessPatchComponents = TSymbolUniqueId(5466);
+ static constexpr const TSymbolUniqueId gl_MaxTessPatchComponentsES3_2 = TSymbolUniqueId(5467);
+ static constexpr const TSymbolUniqueId gl_MaxPatchVertices = TSymbolUniqueId(5468);
+ static constexpr const TSymbolUniqueId gl_MaxPatchVerticesES3_2 = TSymbolUniqueId(5469);
+ static constexpr const TSymbolUniqueId gl_MaxTessGenLevel = TSymbolUniqueId(5470);
+ static constexpr const TSymbolUniqueId gl_MaxTessGenLevelES3_2 = TSymbolUniqueId(5471);
+ static constexpr const TSymbolUniqueId gl_MaxTessEvaluationInputComponents =
+ TSymbolUniqueId(5472);
+ static constexpr const TSymbolUniqueId gl_MaxTessEvaluationInputComponentsES3_2 =
+ TSymbolUniqueId(5473);
+ static constexpr const TSymbolUniqueId gl_MaxTessEvaluationOutputComponents =
+ TSymbolUniqueId(5474);
+ static constexpr const TSymbolUniqueId gl_MaxTessEvaluationOutputComponentsES3_2 =
+ TSymbolUniqueId(5475);
+ static constexpr const TSymbolUniqueId gl_MaxTessEvaluationTextureImageUnits =
+ TSymbolUniqueId(5476);
+ static constexpr const TSymbolUniqueId gl_MaxTessEvaluationTextureImageUnitsES3_2 =
+ TSymbolUniqueId(5477);
+ static constexpr const TSymbolUniqueId gl_MaxTessEvaluationUniformComponents =
+ TSymbolUniqueId(5478);
+ static constexpr const TSymbolUniqueId gl_MaxTessEvaluationUniformComponentsES3_2 =
+ TSymbolUniqueId(5479);
+ static constexpr const TSymbolUniqueId gl_MaxTessEvaluationImageUniforms =
+ TSymbolUniqueId(5480);
+ static constexpr const TSymbolUniqueId gl_MaxTessEvaluationImageUniformsES3_2 =
+ TSymbolUniqueId(5481);
+ static constexpr const TSymbolUniqueId gl_MaxTessEvaluationAtomicCounters =
+ TSymbolUniqueId(5482);
+ static constexpr const TSymbolUniqueId gl_MaxTessEvaluationAtomicCountersES3_2 =
+ TSymbolUniqueId(5483);
+ static constexpr const TSymbolUniqueId gl_MaxTessEvaluationAtomicCounterBuffers =
+ TSymbolUniqueId(5484);
+ static constexpr const TSymbolUniqueId gl_MaxTessEvaluationAtomicCounterBuffersES3_2 =
+ TSymbolUniqueId(5485);
+ static constexpr const TSymbolUniqueId gl_MaxSamples = TSymbolUniqueId(5486);
+ static constexpr const TSymbolUniqueId gl_MaxSamplesES3_2 = TSymbolUniqueId(5487);
+ static constexpr const TSymbolUniqueId gl_MaxClipDistancesAPPLE = TSymbolUniqueId(5488);
+ static constexpr const TSymbolUniqueId gl_MaxCullDistancesEXT = TSymbolUniqueId(5489);
+ static constexpr const TSymbolUniqueId gl_MaxCombinedClipAndCullDistancesEXT =
+ TSymbolUniqueId(5490);
+ static constexpr const TSymbolUniqueId gl_FragCoord = TSymbolUniqueId(5491);
+ static constexpr const TSymbolUniqueId gl_FrontFacing = TSymbolUniqueId(5492);
+ static constexpr const TSymbolUniqueId gl_PointCoord = TSymbolUniqueId(5493);
+ static constexpr const TSymbolUniqueId gl_FragColor = TSymbolUniqueId(5494);
+ static constexpr const TSymbolUniqueId gl_FragData = TSymbolUniqueId(5495);
+ static constexpr const TSymbolUniqueId gl_FragDepth = TSymbolUniqueId(5496);
+ static constexpr const TSymbolUniqueId gl_HelperInvocation = TSymbolUniqueId(5497);
+ static constexpr const TSymbolUniqueId gl_FragCoord300 = TSymbolUniqueId(5498);
+ static constexpr const TSymbolUniqueId gl_SecondaryFragColorEXT = TSymbolUniqueId(5499);
+ static constexpr const TSymbolUniqueId gl_SecondaryFragDataEXT = TSymbolUniqueId(5500);
+ static constexpr const TSymbolUniqueId gl_FragDepthEXT = TSymbolUniqueId(5501);
+ static constexpr const TSymbolUniqueId gl_LastFragData = TSymbolUniqueId(5502);
+ static constexpr const TSymbolUniqueId gl_LastFragColor = TSymbolUniqueId(5503);
+ static constexpr const TSymbolUniqueId gl_LastFragDataNV = TSymbolUniqueId(5504);
+ static constexpr const TSymbolUniqueId gl_LastFragColorARM = TSymbolUniqueId(5505);
+ static constexpr const TSymbolUniqueId gl_PrimitiveID = TSymbolUniqueId(5506);
+ static constexpr const TSymbolUniqueId gl_PrimitiveIDES3_2 = TSymbolUniqueId(5507);
+ static constexpr const TSymbolUniqueId gl_Layer = TSymbolUniqueId(5508);
+ static constexpr const TSymbolUniqueId gl_LayerES3_2 = TSymbolUniqueId(5509);
+ static constexpr const TSymbolUniqueId gl_SampleID = TSymbolUniqueId(5510);
+ static constexpr const TSymbolUniqueId gl_SampleIDES3_2 = TSymbolUniqueId(5511);
+ static constexpr const TSymbolUniqueId gl_SamplePosition = TSymbolUniqueId(5512);
+ static constexpr const TSymbolUniqueId gl_SamplePositionES3_2 = TSymbolUniqueId(5513);
+ static constexpr const TSymbolUniqueId gl_SampleMaskIn = TSymbolUniqueId(5514);
+ static constexpr const TSymbolUniqueId gl_SampleMaskInES3_2 = TSymbolUniqueId(5515);
+ static constexpr const TSymbolUniqueId gl_SampleMask = TSymbolUniqueId(5516);
+ static constexpr const TSymbolUniqueId gl_SampleMaskES3_2 = TSymbolUniqueId(5517);
+ static constexpr const TSymbolUniqueId gl_CullDistance = TSymbolUniqueId(5518);
+ static constexpr const TSymbolUniqueId gl_ClipDistance = TSymbolUniqueId(5519);
+ static constexpr const TSymbolUniqueId gl_Position = TSymbolUniqueId(5520);
+ static constexpr const TSymbolUniqueId gl_PointSize = TSymbolUniqueId(5521);
+ static constexpr const TSymbolUniqueId gl_InstanceID = TSymbolUniqueId(5522);
+ static constexpr const TSymbolUniqueId gl_InstanceIndex = TSymbolUniqueId(5523);
+ static constexpr const TSymbolUniqueId gl_VertexID = TSymbolUniqueId(5524);
+ static constexpr const TSymbolUniqueId gl_VertexIndex = TSymbolUniqueId(5525);
+ static constexpr const TSymbolUniqueId gl_ViewportIndex = TSymbolUniqueId(5526);
+ static constexpr const TSymbolUniqueId gl_LayerVS = TSymbolUniqueId(5527);
+ static constexpr const TSymbolUniqueId gl_PointSize300 = TSymbolUniqueId(5528);
+ static constexpr const TSymbolUniqueId gl_DrawID = TSymbolUniqueId(5529);
+ static constexpr const TSymbolUniqueId gl_BaseVertex = TSymbolUniqueId(5530);
+ static constexpr const TSymbolUniqueId gl_BaseInstance = TSymbolUniqueId(5531);
+ static constexpr const TSymbolUniqueId angle_BaseVertex = TSymbolUniqueId(5532);
+ static constexpr const TSymbolUniqueId angle_BaseInstance = TSymbolUniqueId(5533);
+ static constexpr const TSymbolUniqueId gl_ClipDistanceAPPLE = TSymbolUniqueId(5534);
+ static constexpr const TSymbolUniqueId gl_CullDistanceEXT = TSymbolUniqueId(5535);
+ static constexpr const TSymbolUniqueId gl_NumWorkGroups = TSymbolUniqueId(5536);
+ static constexpr const TSymbolUniqueId gl_WorkGroupSize = TSymbolUniqueId(5537);
+ static constexpr const TSymbolUniqueId gl_WorkGroupID = TSymbolUniqueId(5538);
+ static constexpr const TSymbolUniqueId gl_LocalInvocationID = TSymbolUniqueId(5539);
+ static constexpr const TSymbolUniqueId gl_GlobalInvocationID = TSymbolUniqueId(5540);
+ static constexpr const TSymbolUniqueId gl_LocalInvocationIndex = TSymbolUniqueId(5541);
+ static constexpr const TSymbolUniqueId gl_PrimitiveIDIn = TSymbolUniqueId(5542);
+ static constexpr const TSymbolUniqueId gl_PrimitiveIDInES3_2 = TSymbolUniqueId(5543);
+ static constexpr const TSymbolUniqueId gl_InvocationID = TSymbolUniqueId(5544);
+ static constexpr const TSymbolUniqueId gl_InvocationIDES3_2 = TSymbolUniqueId(5545);
+ static constexpr const TSymbolUniqueId gl_PrimitiveIDGS = TSymbolUniqueId(5546);
+ static constexpr const TSymbolUniqueId gl_PrimitiveIDGSES3_2 = TSymbolUniqueId(5547);
+ static constexpr const TSymbolUniqueId gl_LayerGS = TSymbolUniqueId(5548);
+ static constexpr const TSymbolUniqueId gl_LayerGSES3_2 = TSymbolUniqueId(5549);
+ static constexpr const TSymbolUniqueId gl_PerVertex = TSymbolUniqueId(5550);
+ static constexpr const TSymbolUniqueId gl_PerVertexES3_2 = TSymbolUniqueId(5551);
+ static constexpr const TSymbolUniqueId gl_in = TSymbolUniqueId(5552);
+ static constexpr const TSymbolUniqueId gl_inES3_2 = TSymbolUniqueId(5553);
+ static constexpr const TSymbolUniqueId gl_PerVertexOutBlock = TSymbolUniqueId(5554);
+ static constexpr const TSymbolUniqueId gl_PerVertexOutBlockES3_2 = TSymbolUniqueId(5555);
+ static constexpr const TSymbolUniqueId gl_PositionGS = TSymbolUniqueId(5556);
+ static constexpr const TSymbolUniqueId gl_PositionGSES3_2 = TSymbolUniqueId(5557);
+ static constexpr const TSymbolUniqueId gl_PatchVerticesInTCS = TSymbolUniqueId(5558);
+ static constexpr const TSymbolUniqueId gl_PatchVerticesInTCSES3_2 = TSymbolUniqueId(5559);
+ static constexpr const TSymbolUniqueId gl_InvocationIDTCS = TSymbolUniqueId(5560);
+ static constexpr const TSymbolUniqueId gl_InvocationIDTCSES3_2 = TSymbolUniqueId(5561);
+ static constexpr const TSymbolUniqueId gl_PrimitiveIDTCS = TSymbolUniqueId(5562);
+ static constexpr const TSymbolUniqueId gl_PrimitiveIDTCSES3_2 = TSymbolUniqueId(5563);
+ static constexpr const TSymbolUniqueId gl_TessLevelOuterTCS = TSymbolUniqueId(5564);
+ static constexpr const TSymbolUniqueId gl_TessLevelOuterTCSES3_2 = TSymbolUniqueId(5565);
+ static constexpr const TSymbolUniqueId gl_TessLevelInnerTCS = TSymbolUniqueId(5566);
+ static constexpr const TSymbolUniqueId gl_TessLevelInnerTCSES3_2 = TSymbolUniqueId(5567);
+ static constexpr const TSymbolUniqueId gl_PerVertexTCS = TSymbolUniqueId(5568);
+ static constexpr const TSymbolUniqueId gl_PerVertexTCSES3_2 = TSymbolUniqueId(5569);
+ static constexpr const TSymbolUniqueId gl_inTCS = TSymbolUniqueId(5570);
+ static constexpr const TSymbolUniqueId gl_inTCSES3_2 = TSymbolUniqueId(5571);
+ static constexpr const TSymbolUniqueId gl_outTCS = TSymbolUniqueId(5572);
+ static constexpr const TSymbolUniqueId gl_outTCSES3_2 = TSymbolUniqueId(5573);
+ static constexpr const TSymbolUniqueId gl_BoundingBoxTCS = TSymbolUniqueId(5574);
+ static constexpr const TSymbolUniqueId gl_BoundingBoxTCSES3_2 = TSymbolUniqueId(5575);
+ static constexpr const TSymbolUniqueId gl_PerVertexOutTcsBlock = TSymbolUniqueId(5576);
+ static constexpr const TSymbolUniqueId gl_PerVertexOutTcsBlockES3_2 = TSymbolUniqueId(5577);
+ static constexpr const TSymbolUniqueId gl_PositionTCS = TSymbolUniqueId(5578);
+ static constexpr const TSymbolUniqueId gl_PositionTCSES3_2 = TSymbolUniqueId(5579);
+ static constexpr const TSymbolUniqueId gl_BoundingBoxEXTTCS = TSymbolUniqueId(5580);
+ static constexpr const TSymbolUniqueId gl_BoundingBoxEXTTCSES3_2 = TSymbolUniqueId(5581);
+ static constexpr const TSymbolUniqueId gl_BoundingBoxOESTCS = TSymbolUniqueId(5582);
+ static constexpr const TSymbolUniqueId gl_BoundingBoxOESTCSES3_2 = TSymbolUniqueId(5583);
+ static constexpr const TSymbolUniqueId gl_PatchVerticesInTES = TSymbolUniqueId(5584);
+ static constexpr const TSymbolUniqueId gl_PatchVerticesInTESES3_2 = TSymbolUniqueId(5585);
+ static constexpr const TSymbolUniqueId gl_PrimitiveIDTES = TSymbolUniqueId(5586);
+ static constexpr const TSymbolUniqueId gl_PrimitiveIDTESES3_2 = TSymbolUniqueId(5587);
+ static constexpr const TSymbolUniqueId gl_TessCoord = TSymbolUniqueId(5588);
+ static constexpr const TSymbolUniqueId gl_TessLevelOuterTES = TSymbolUniqueId(5589);
+ static constexpr const TSymbolUniqueId gl_TessLevelOuterTESES3_2 = TSymbolUniqueId(5590);
+ static constexpr const TSymbolUniqueId gl_TessLevelInnerTES = TSymbolUniqueId(5591);
+ static constexpr const TSymbolUniqueId gl_TessLevelInnerTESES3_2 = TSymbolUniqueId(5592);
+ static constexpr const TSymbolUniqueId gl_PerVertexTES = TSymbolUniqueId(5593);
+ static constexpr const TSymbolUniqueId gl_PerVertexTESES3_2 = TSymbolUniqueId(5594);
+ static constexpr const TSymbolUniqueId gl_inTES = TSymbolUniqueId(5595);
+ static constexpr const TSymbolUniqueId gl_inTESES3_2 = TSymbolUniqueId(5596);
+ static constexpr const TSymbolUniqueId gl_outTES = TSymbolUniqueId(5597);
+ static constexpr const TSymbolUniqueId gl_outTESES3_2 = TSymbolUniqueId(5598);
+ static constexpr const TSymbolUniqueId gl_PerVertexOutTesBlock = TSymbolUniqueId(5599);
+ static constexpr const TSymbolUniqueId gl_PerVertexOutTesBlockES3_2 = TSymbolUniqueId(5600);
+ static constexpr const TSymbolUniqueId gl_PositionTES = TSymbolUniqueId(5601);
+ static constexpr const TSymbolUniqueId gl_PositionTESES3_2 = TSymbolUniqueId(5602);
+ static constexpr const TSymbolUniqueId gl_ViewID_OVR = TSymbolUniqueId(5603);
+
+}; // class BuiltInId
+
+namespace BuiltInVariable
+{
+
+const TVariable *angle_BaseInstance();
+const TVariable *angle_BaseVertex();
+const TVariable *gl_BaseInstance();
+const TVariable *gl_BaseVertex();
+const TVariable *gl_DrawID();
+const TVariable *gl_FragColor();
+const TVariable *gl_FragCoord();
+const TVariable *gl_FragCoord300();
+const TVariable *gl_FragDepth();
+const TVariable *gl_FrontFacing();
+const TVariable *gl_GlobalInvocationID();
+const TVariable *gl_HelperInvocation();
+const TVariable *gl_InstanceID();
+const TVariable *gl_InstanceIndex();
+const TVariable *gl_InvocationID();
+const TVariable *gl_InvocationIDES3_2();
+const TVariable *gl_InvocationIDTCS();
+const TVariable *gl_InvocationIDTCSES3_2();
+const TVariable *gl_LastFragColor();
+const TVariable *gl_LastFragColorARM();
+const TVariable *gl_Layer();
+const TVariable *gl_LayerES3_2();
+const TVariable *gl_LayerGS();
+const TVariable *gl_LayerGSES3_2();
+const TVariable *gl_LayerVS();
+const TVariable *gl_LocalInvocationID();
+const TVariable *gl_LocalInvocationIndex();
+const TVariable *gl_NumSamples();
+const TVariable *gl_NumSamplesES3_2();
+const TVariable *gl_NumWorkGroups();
+const TVariable *gl_PatchVerticesInTCS();
+const TVariable *gl_PatchVerticesInTCSES3_2();
+const TVariable *gl_PatchVerticesInTES();
+const TVariable *gl_PatchVerticesInTESES3_2();
+const TVariable *gl_PointCoord();
+const TVariable *gl_PointSize();
+const TVariable *gl_PointSize300();
+const TVariable *gl_Position();
+const TVariable *gl_PrimitiveID();
+const TVariable *gl_PrimitiveIDES3_2();
+const TVariable *gl_PrimitiveIDGS();
+const TVariable *gl_PrimitiveIDGSES3_2();
+const TVariable *gl_PrimitiveIDIn();
+const TVariable *gl_PrimitiveIDInES3_2();
+const TVariable *gl_PrimitiveIDTCS();
+const TVariable *gl_PrimitiveIDTCSES3_2();
+const TVariable *gl_PrimitiveIDTES();
+const TVariable *gl_PrimitiveIDTESES3_2();
+const TVariable *gl_SampleID();
+const TVariable *gl_SampleIDES3_2();
+const TVariable *gl_SamplePosition();
+const TVariable *gl_SamplePositionES3_2();
+const TVariable *gl_SecondaryFragColorEXT();
+const TVariable *gl_TessCoord();
+const TVariable *gl_VertexID();
+const TVariable *gl_VertexIndex();
+const TVariable *gl_ViewID_OVR();
+const TVariable *gl_ViewportIndex();
+const TVariable *gl_WorkGroupID();
+const TVariable *gl_WorkGroupSize();
+
+} // namespace BuiltInVariable
+
+} // namespace sh
+
+#endif // COMPILER_TRANSLATOR_TREEUTIL_BUILTIN_AUTOGEN_H_
diff --git a/gfx/angle/checkout/src/compiler/translator/tree_util/BuiltIn_complete_autogen.h b/gfx/angle/checkout/src/compiler/translator/tree_util/BuiltIn_complete_autogen.h
new file mode 100644
index 0000000000..406d930d56
--- /dev/null
+++ b/gfx/angle/checkout/src/compiler/translator/tree_util/BuiltIn_complete_autogen.h
@@ -0,0 +1,5008 @@
+// GENERATED FILE - DO NOT EDIT.
+// Generated by gen_builtin_symbols.py using data from builtin_variables.json and
+// builtin_function_declarations.txt.
+//
+// Copyright 2020 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.
+//
+// BuiltIn_complete_autogen.h:
+// Compile-time initialized built-ins.
+
+#ifndef COMPILER_TRANSLATOR_TREEUTIL_BUILTIN_AUTOGEN_H_
+#define COMPILER_TRANSLATOR_TREEUTIL_BUILTIN_AUTOGEN_H_
+
+#include "compiler/translator/SymbolUniqueId.h"
+
+namespace sh
+{
+
+class TVariable;
+
+class BuiltInId
+{
+ public:
+ static constexpr const TSymbolUniqueId radians_Float1 = TSymbolUniqueId(0);
+ static constexpr const TSymbolUniqueId pt00B = TSymbolUniqueId(1);
+ static constexpr const TSymbolUniqueId radians_Float2 = TSymbolUniqueId(2);
+ static constexpr const TSymbolUniqueId pt10B = TSymbolUniqueId(3);
+ static constexpr const TSymbolUniqueId radians_Float3 = TSymbolUniqueId(4);
+ static constexpr const TSymbolUniqueId pt20B = TSymbolUniqueId(5);
+ static constexpr const TSymbolUniqueId radians_Float4 = TSymbolUniqueId(6);
+ static constexpr const TSymbolUniqueId pt30B = TSymbolUniqueId(7);
+ static constexpr const TSymbolUniqueId degrees_Float1 = TSymbolUniqueId(8);
+ static constexpr const TSymbolUniqueId degrees_Float2 = TSymbolUniqueId(9);
+ static constexpr const TSymbolUniqueId degrees_Float3 = TSymbolUniqueId(10);
+ static constexpr const TSymbolUniqueId degrees_Float4 = TSymbolUniqueId(11);
+ static constexpr const TSymbolUniqueId sin_Float1 = TSymbolUniqueId(12);
+ static constexpr const TSymbolUniqueId sin_Float2 = TSymbolUniqueId(13);
+ static constexpr const TSymbolUniqueId sin_Float3 = TSymbolUniqueId(14);
+ static constexpr const TSymbolUniqueId sin_Float4 = TSymbolUniqueId(15);
+ static constexpr const TSymbolUniqueId cos_Float1 = TSymbolUniqueId(16);
+ static constexpr const TSymbolUniqueId cos_Float2 = TSymbolUniqueId(17);
+ static constexpr const TSymbolUniqueId cos_Float3 = TSymbolUniqueId(18);
+ static constexpr const TSymbolUniqueId cos_Float4 = TSymbolUniqueId(19);
+ static constexpr const TSymbolUniqueId tan_Float1 = TSymbolUniqueId(20);
+ static constexpr const TSymbolUniqueId tan_Float2 = TSymbolUniqueId(21);
+ static constexpr const TSymbolUniqueId tan_Float3 = TSymbolUniqueId(22);
+ static constexpr const TSymbolUniqueId tan_Float4 = TSymbolUniqueId(23);
+ static constexpr const TSymbolUniqueId asin_Float1 = TSymbolUniqueId(24);
+ static constexpr const TSymbolUniqueId asin_Float2 = TSymbolUniqueId(25);
+ static constexpr const TSymbolUniqueId asin_Float3 = TSymbolUniqueId(26);
+ static constexpr const TSymbolUniqueId asin_Float4 = TSymbolUniqueId(27);
+ static constexpr const TSymbolUniqueId acos_Float1 = TSymbolUniqueId(28);
+ static constexpr const TSymbolUniqueId acos_Float2 = TSymbolUniqueId(29);
+ static constexpr const TSymbolUniqueId acos_Float3 = TSymbolUniqueId(30);
+ static constexpr const TSymbolUniqueId acos_Float4 = TSymbolUniqueId(31);
+ static constexpr const TSymbolUniqueId atan_Float1_Float1 = TSymbolUniqueId(32);
+ static constexpr const TSymbolUniqueId atan_Float2_Float2 = TSymbolUniqueId(33);
+ static constexpr const TSymbolUniqueId atan_Float3_Float3 = TSymbolUniqueId(34);
+ static constexpr const TSymbolUniqueId atan_Float4_Float4 = TSymbolUniqueId(35);
+ static constexpr const TSymbolUniqueId atan_Float1 = TSymbolUniqueId(36);
+ static constexpr const TSymbolUniqueId atan_Float2 = TSymbolUniqueId(37);
+ static constexpr const TSymbolUniqueId atan_Float3 = TSymbolUniqueId(38);
+ static constexpr const TSymbolUniqueId atan_Float4 = TSymbolUniqueId(39);
+ static constexpr const TSymbolUniqueId sinh_Float1 = TSymbolUniqueId(40);
+ static constexpr const TSymbolUniqueId sinh_Float2 = TSymbolUniqueId(41);
+ static constexpr const TSymbolUniqueId sinh_Float3 = TSymbolUniqueId(42);
+ static constexpr const TSymbolUniqueId sinh_Float4 = TSymbolUniqueId(43);
+ static constexpr const TSymbolUniqueId cosh_Float1 = TSymbolUniqueId(44);
+ static constexpr const TSymbolUniqueId cosh_Float2 = TSymbolUniqueId(45);
+ static constexpr const TSymbolUniqueId cosh_Float3 = TSymbolUniqueId(46);
+ static constexpr const TSymbolUniqueId cosh_Float4 = TSymbolUniqueId(47);
+ static constexpr const TSymbolUniqueId tanh_Float1 = TSymbolUniqueId(48);
+ static constexpr const TSymbolUniqueId tanh_Float2 = TSymbolUniqueId(49);
+ static constexpr const TSymbolUniqueId tanh_Float3 = TSymbolUniqueId(50);
+ static constexpr const TSymbolUniqueId tanh_Float4 = TSymbolUniqueId(51);
+ static constexpr const TSymbolUniqueId asinh_Float1 = TSymbolUniqueId(52);
+ static constexpr const TSymbolUniqueId asinh_Float2 = TSymbolUniqueId(53);
+ static constexpr const TSymbolUniqueId asinh_Float3 = TSymbolUniqueId(54);
+ static constexpr const TSymbolUniqueId asinh_Float4 = TSymbolUniqueId(55);
+ static constexpr const TSymbolUniqueId acosh_Float1 = TSymbolUniqueId(56);
+ static constexpr const TSymbolUniqueId acosh_Float2 = TSymbolUniqueId(57);
+ static constexpr const TSymbolUniqueId acosh_Float3 = TSymbolUniqueId(58);
+ static constexpr const TSymbolUniqueId acosh_Float4 = TSymbolUniqueId(59);
+ static constexpr const TSymbolUniqueId atanh_Float1 = TSymbolUniqueId(60);
+ static constexpr const TSymbolUniqueId atanh_Float2 = TSymbolUniqueId(61);
+ static constexpr const TSymbolUniqueId atanh_Float3 = TSymbolUniqueId(62);
+ static constexpr const TSymbolUniqueId atanh_Float4 = TSymbolUniqueId(63);
+ static constexpr const TSymbolUniqueId pow_Float1_Float1 = TSymbolUniqueId(64);
+ static constexpr const TSymbolUniqueId pow_Float2_Float2 = TSymbolUniqueId(65);
+ static constexpr const TSymbolUniqueId pow_Float3_Float3 = TSymbolUniqueId(66);
+ static constexpr const TSymbolUniqueId pow_Float4_Float4 = TSymbolUniqueId(67);
+ static constexpr const TSymbolUniqueId exp_Float1 = TSymbolUniqueId(68);
+ static constexpr const TSymbolUniqueId exp_Float2 = TSymbolUniqueId(69);
+ static constexpr const TSymbolUniqueId exp_Float3 = TSymbolUniqueId(70);
+ static constexpr const TSymbolUniqueId exp_Float4 = TSymbolUniqueId(71);
+ static constexpr const TSymbolUniqueId log_Float1 = TSymbolUniqueId(72);
+ static constexpr const TSymbolUniqueId log_Float2 = TSymbolUniqueId(73);
+ static constexpr const TSymbolUniqueId log_Float3 = TSymbolUniqueId(74);
+ static constexpr const TSymbolUniqueId log_Float4 = TSymbolUniqueId(75);
+ static constexpr const TSymbolUniqueId exp2_Float1 = TSymbolUniqueId(76);
+ static constexpr const TSymbolUniqueId exp2_Float2 = TSymbolUniqueId(77);
+ static constexpr const TSymbolUniqueId exp2_Float3 = TSymbolUniqueId(78);
+ static constexpr const TSymbolUniqueId exp2_Float4 = TSymbolUniqueId(79);
+ static constexpr const TSymbolUniqueId log2_Float1 = TSymbolUniqueId(80);
+ static constexpr const TSymbolUniqueId log2_Float2 = TSymbolUniqueId(81);
+ static constexpr const TSymbolUniqueId log2_Float3 = TSymbolUniqueId(82);
+ static constexpr const TSymbolUniqueId log2_Float4 = TSymbolUniqueId(83);
+ static constexpr const TSymbolUniqueId sqrt_Float1 = TSymbolUniqueId(84);
+ static constexpr const TSymbolUniqueId sqrt_Float2 = TSymbolUniqueId(85);
+ static constexpr const TSymbolUniqueId sqrt_Float3 = TSymbolUniqueId(86);
+ static constexpr const TSymbolUniqueId sqrt_Float4 = TSymbolUniqueId(87);
+ static constexpr const TSymbolUniqueId sqrt_Double1 = TSymbolUniqueId(88);
+ static constexpr const TSymbolUniqueId pt00C = TSymbolUniqueId(89);
+ static constexpr const TSymbolUniqueId sqrt_Double2 = TSymbolUniqueId(90);
+ static constexpr const TSymbolUniqueId pt10C = TSymbolUniqueId(91);
+ static constexpr const TSymbolUniqueId sqrt_Double3 = TSymbolUniqueId(92);
+ static constexpr const TSymbolUniqueId pt20C = TSymbolUniqueId(93);
+ static constexpr const TSymbolUniqueId sqrt_Double4 = TSymbolUniqueId(94);
+ static constexpr const TSymbolUniqueId pt30C = TSymbolUniqueId(95);
+ static constexpr const TSymbolUniqueId inversesqrt_Float1 = TSymbolUniqueId(96);
+ static constexpr const TSymbolUniqueId inversesqrt_Float2 = TSymbolUniqueId(97);
+ static constexpr const TSymbolUniqueId inversesqrt_Float3 = TSymbolUniqueId(98);
+ static constexpr const TSymbolUniqueId inversesqrt_Float4 = TSymbolUniqueId(99);
+ static constexpr const TSymbolUniqueId inversesqrt_Double1 = TSymbolUniqueId(100);
+ static constexpr const TSymbolUniqueId inversesqrt_Double2 = TSymbolUniqueId(101);
+ static constexpr const TSymbolUniqueId inversesqrt_Double3 = TSymbolUniqueId(102);
+ static constexpr const TSymbolUniqueId inversesqrt_Double4 = TSymbolUniqueId(103);
+ static constexpr const TSymbolUniqueId abs_Float1 = TSymbolUniqueId(104);
+ static constexpr const TSymbolUniqueId abs_Float2 = TSymbolUniqueId(105);
+ static constexpr const TSymbolUniqueId abs_Float3 = TSymbolUniqueId(106);
+ static constexpr const TSymbolUniqueId abs_Float4 = TSymbolUniqueId(107);
+ static constexpr const TSymbolUniqueId abs_Int1 = TSymbolUniqueId(108);
+ static constexpr const TSymbolUniqueId pt00D = TSymbolUniqueId(109);
+ static constexpr const TSymbolUniqueId abs_Int2 = TSymbolUniqueId(110);
+ static constexpr const TSymbolUniqueId pt10D = TSymbolUniqueId(111);
+ static constexpr const TSymbolUniqueId abs_Int3 = TSymbolUniqueId(112);
+ static constexpr const TSymbolUniqueId pt20D = TSymbolUniqueId(113);
+ static constexpr const TSymbolUniqueId abs_Int4 = TSymbolUniqueId(114);
+ static constexpr const TSymbolUniqueId pt30D = TSymbolUniqueId(115);
+ static constexpr const TSymbolUniqueId abs_Double1 = TSymbolUniqueId(116);
+ static constexpr const TSymbolUniqueId abs_Double2 = TSymbolUniqueId(117);
+ static constexpr const TSymbolUniqueId abs_Double3 = TSymbolUniqueId(118);
+ static constexpr const TSymbolUniqueId abs_Double4 = TSymbolUniqueId(119);
+ static constexpr const TSymbolUniqueId sign_Float1 = TSymbolUniqueId(120);
+ static constexpr const TSymbolUniqueId sign_Float2 = TSymbolUniqueId(121);
+ static constexpr const TSymbolUniqueId sign_Float3 = TSymbolUniqueId(122);
+ static constexpr const TSymbolUniqueId sign_Float4 = TSymbolUniqueId(123);
+ static constexpr const TSymbolUniqueId sign_Int1 = TSymbolUniqueId(124);
+ static constexpr const TSymbolUniqueId sign_Int2 = TSymbolUniqueId(125);
+ static constexpr const TSymbolUniqueId sign_Int3 = TSymbolUniqueId(126);
+ static constexpr const TSymbolUniqueId sign_Int4 = TSymbolUniqueId(127);
+ static constexpr const TSymbolUniqueId sign_Double1 = TSymbolUniqueId(128);
+ static constexpr const TSymbolUniqueId sign_Double2 = TSymbolUniqueId(129);
+ static constexpr const TSymbolUniqueId sign_Double3 = TSymbolUniqueId(130);
+ static constexpr const TSymbolUniqueId sign_Double4 = TSymbolUniqueId(131);
+ static constexpr const TSymbolUniqueId floor_Float1 = TSymbolUniqueId(132);
+ static constexpr const TSymbolUniqueId floor_Float2 = TSymbolUniqueId(133);
+ static constexpr const TSymbolUniqueId floor_Float3 = TSymbolUniqueId(134);
+ static constexpr const TSymbolUniqueId floor_Float4 = TSymbolUniqueId(135);
+ static constexpr const TSymbolUniqueId floor_Double1 = TSymbolUniqueId(136);
+ static constexpr const TSymbolUniqueId floor_Double2 = TSymbolUniqueId(137);
+ static constexpr const TSymbolUniqueId floor_Double3 = TSymbolUniqueId(138);
+ static constexpr const TSymbolUniqueId floor_Double4 = TSymbolUniqueId(139);
+ static constexpr const TSymbolUniqueId trunc_Float1 = TSymbolUniqueId(140);
+ static constexpr const TSymbolUniqueId trunc_Float2 = TSymbolUniqueId(141);
+ static constexpr const TSymbolUniqueId trunc_Float3 = TSymbolUniqueId(142);
+ static constexpr const TSymbolUniqueId trunc_Float4 = TSymbolUniqueId(143);
+ static constexpr const TSymbolUniqueId trunc_Double1 = TSymbolUniqueId(144);
+ static constexpr const TSymbolUniqueId trunc_Double2 = TSymbolUniqueId(145);
+ static constexpr const TSymbolUniqueId trunc_Double3 = TSymbolUniqueId(146);
+ static constexpr const TSymbolUniqueId trunc_Double4 = TSymbolUniqueId(147);
+ static constexpr const TSymbolUniqueId round_Float1 = TSymbolUniqueId(148);
+ static constexpr const TSymbolUniqueId round_Float2 = TSymbolUniqueId(149);
+ static constexpr const TSymbolUniqueId round_Float3 = TSymbolUniqueId(150);
+ static constexpr const TSymbolUniqueId round_Float4 = TSymbolUniqueId(151);
+ static constexpr const TSymbolUniqueId round_Double1 = TSymbolUniqueId(152);
+ static constexpr const TSymbolUniqueId round_Double2 = TSymbolUniqueId(153);
+ static constexpr const TSymbolUniqueId round_Double3 = TSymbolUniqueId(154);
+ static constexpr const TSymbolUniqueId round_Double4 = TSymbolUniqueId(155);
+ static constexpr const TSymbolUniqueId roundEven_Float1 = TSymbolUniqueId(156);
+ static constexpr const TSymbolUniqueId roundEven_Float2 = TSymbolUniqueId(157);
+ static constexpr const TSymbolUniqueId roundEven_Float3 = TSymbolUniqueId(158);
+ static constexpr const TSymbolUniqueId roundEven_Float4 = TSymbolUniqueId(159);
+ static constexpr const TSymbolUniqueId roundEven_Double1 = TSymbolUniqueId(160);
+ static constexpr const TSymbolUniqueId roundEven_Double2 = TSymbolUniqueId(161);
+ static constexpr const TSymbolUniqueId roundEven_Double3 = TSymbolUniqueId(162);
+ static constexpr const TSymbolUniqueId roundEven_Double4 = TSymbolUniqueId(163);
+ static constexpr const TSymbolUniqueId ceil_Float1 = TSymbolUniqueId(164);
+ static constexpr const TSymbolUniqueId ceil_Float2 = TSymbolUniqueId(165);
+ static constexpr const TSymbolUniqueId ceil_Float3 = TSymbolUniqueId(166);
+ static constexpr const TSymbolUniqueId ceil_Float4 = TSymbolUniqueId(167);
+ static constexpr const TSymbolUniqueId ceil_Double1 = TSymbolUniqueId(168);
+ static constexpr const TSymbolUniqueId ceil_Double2 = TSymbolUniqueId(169);
+ static constexpr const TSymbolUniqueId ceil_Double3 = TSymbolUniqueId(170);
+ static constexpr const TSymbolUniqueId ceil_Double4 = TSymbolUniqueId(171);
+ static constexpr const TSymbolUniqueId fract_Float1 = TSymbolUniqueId(172);
+ static constexpr const TSymbolUniqueId fract_Float2 = TSymbolUniqueId(173);
+ static constexpr const TSymbolUniqueId fract_Float3 = TSymbolUniqueId(174);
+ static constexpr const TSymbolUniqueId fract_Float4 = TSymbolUniqueId(175);
+ static constexpr const TSymbolUniqueId fract_Double1 = TSymbolUniqueId(176);
+ static constexpr const TSymbolUniqueId fract_Double2 = TSymbolUniqueId(177);
+ static constexpr const TSymbolUniqueId fract_Double3 = TSymbolUniqueId(178);
+ static constexpr const TSymbolUniqueId fract_Double4 = TSymbolUniqueId(179);
+ static constexpr const TSymbolUniqueId mod_Float1_Float1 = TSymbolUniqueId(180);
+ static constexpr const TSymbolUniqueId mod_Float2_Float1 = TSymbolUniqueId(181);
+ static constexpr const TSymbolUniqueId mod_Float3_Float1 = TSymbolUniqueId(182);
+ static constexpr const TSymbolUniqueId mod_Float4_Float1 = TSymbolUniqueId(183);
+ static constexpr const TSymbolUniqueId mod_Float2_Float2 = TSymbolUniqueId(184);
+ static constexpr const TSymbolUniqueId mod_Float3_Float3 = TSymbolUniqueId(185);
+ static constexpr const TSymbolUniqueId mod_Float4_Float4 = TSymbolUniqueId(186);
+ static constexpr const TSymbolUniqueId mod_Double1_Double1 = TSymbolUniqueId(187);
+ static constexpr const TSymbolUniqueId mod_Double2_Double1 = TSymbolUniqueId(188);
+ static constexpr const TSymbolUniqueId mod_Double3_Double1 = TSymbolUniqueId(189);
+ static constexpr const TSymbolUniqueId mod_Double4_Double1 = TSymbolUniqueId(190);
+ static constexpr const TSymbolUniqueId mod_Double2_Double2 = TSymbolUniqueId(191);
+ static constexpr const TSymbolUniqueId mod_Double3_Double3 = TSymbolUniqueId(192);
+ static constexpr const TSymbolUniqueId mod_Double4_Double4 = TSymbolUniqueId(193);
+ static constexpr const TSymbolUniqueId min_Float1_Float1 = TSymbolUniqueId(194);
+ static constexpr const TSymbolUniqueId min_Float2_Float1 = TSymbolUniqueId(195);
+ static constexpr const TSymbolUniqueId min_Float3_Float1 = TSymbolUniqueId(196);
+ static constexpr const TSymbolUniqueId min_Float4_Float1 = TSymbolUniqueId(197);
+ static constexpr const TSymbolUniqueId min_Float2_Float2 = TSymbolUniqueId(198);
+ static constexpr const TSymbolUniqueId min_Float3_Float3 = TSymbolUniqueId(199);
+ static constexpr const TSymbolUniqueId min_Float4_Float4 = TSymbolUniqueId(200);
+ static constexpr const TSymbolUniqueId min_Double1_Double1 = TSymbolUniqueId(201);
+ static constexpr const TSymbolUniqueId min_Double2_Double2 = TSymbolUniqueId(202);
+ static constexpr const TSymbolUniqueId min_Double3_Double3 = TSymbolUniqueId(203);
+ static constexpr const TSymbolUniqueId min_Double4_Double4 = TSymbolUniqueId(204);
+ static constexpr const TSymbolUniqueId min_Double2_Double1 = TSymbolUniqueId(205);
+ static constexpr const TSymbolUniqueId min_Double3_Double1 = TSymbolUniqueId(206);
+ static constexpr const TSymbolUniqueId min_Double4_Double1 = TSymbolUniqueId(207);
+ static constexpr const TSymbolUniqueId min_Int1_Int1 = TSymbolUniqueId(208);
+ static constexpr const TSymbolUniqueId min_Int2_Int2 = TSymbolUniqueId(209);
+ static constexpr const TSymbolUniqueId min_Int3_Int3 = TSymbolUniqueId(210);
+ static constexpr const TSymbolUniqueId min_Int4_Int4 = TSymbolUniqueId(211);
+ static constexpr const TSymbolUniqueId min_Int2_Int1 = TSymbolUniqueId(212);
+ static constexpr const TSymbolUniqueId min_Int3_Int1 = TSymbolUniqueId(213);
+ static constexpr const TSymbolUniqueId min_Int4_Int1 = TSymbolUniqueId(214);
+ static constexpr const TSymbolUniqueId min_UInt1_UInt1 = TSymbolUniqueId(215);
+ static constexpr const TSymbolUniqueId pt00E = TSymbolUniqueId(216);
+ static constexpr const TSymbolUniqueId min_UInt2_UInt2 = TSymbolUniqueId(217);
+ static constexpr const TSymbolUniqueId pt10E = TSymbolUniqueId(218);
+ static constexpr const TSymbolUniqueId min_UInt3_UInt3 = TSymbolUniqueId(219);
+ static constexpr const TSymbolUniqueId pt20E = TSymbolUniqueId(220);
+ static constexpr const TSymbolUniqueId min_UInt4_UInt4 = TSymbolUniqueId(221);
+ static constexpr const TSymbolUniqueId pt30E = TSymbolUniqueId(222);
+ static constexpr const TSymbolUniqueId min_UInt2_UInt1 = TSymbolUniqueId(223);
+ static constexpr const TSymbolUniqueId min_UInt3_UInt1 = TSymbolUniqueId(224);
+ static constexpr const TSymbolUniqueId min_UInt4_UInt1 = TSymbolUniqueId(225);
+ static constexpr const TSymbolUniqueId max_Float1_Float1 = TSymbolUniqueId(226);
+ static constexpr const TSymbolUniqueId max_Float2_Float1 = TSymbolUniqueId(227);
+ static constexpr const TSymbolUniqueId max_Float3_Float1 = TSymbolUniqueId(228);
+ static constexpr const TSymbolUniqueId max_Float4_Float1 = TSymbolUniqueId(229);
+ static constexpr const TSymbolUniqueId max_Float2_Float2 = TSymbolUniqueId(230);
+ static constexpr const TSymbolUniqueId max_Float3_Float3 = TSymbolUniqueId(231);
+ static constexpr const TSymbolUniqueId max_Float4_Float4 = TSymbolUniqueId(232);
+ static constexpr const TSymbolUniqueId max_Double1_Double1 = TSymbolUniqueId(233);
+ static constexpr const TSymbolUniqueId max_Double2_Double2 = TSymbolUniqueId(234);
+ static constexpr const TSymbolUniqueId max_Double3_Double3 = TSymbolUniqueId(235);
+ static constexpr const TSymbolUniqueId max_Double4_Double4 = TSymbolUniqueId(236);
+ static constexpr const TSymbolUniqueId max_Double2_Double1 = TSymbolUniqueId(237);
+ static constexpr const TSymbolUniqueId max_Double3_Double1 = TSymbolUniqueId(238);
+ static constexpr const TSymbolUniqueId max_Double4_Double1 = TSymbolUniqueId(239);
+ static constexpr const TSymbolUniqueId max_Int1_Int1 = TSymbolUniqueId(240);
+ static constexpr const TSymbolUniqueId max_Int2_Int2 = TSymbolUniqueId(241);
+ static constexpr const TSymbolUniqueId max_Int3_Int3 = TSymbolUniqueId(242);
+ static constexpr const TSymbolUniqueId max_Int4_Int4 = TSymbolUniqueId(243);
+ static constexpr const TSymbolUniqueId max_Int2_Int1 = TSymbolUniqueId(244);
+ static constexpr const TSymbolUniqueId max_Int3_Int1 = TSymbolUniqueId(245);
+ static constexpr const TSymbolUniqueId max_Int4_Int1 = TSymbolUniqueId(246);
+ static constexpr const TSymbolUniqueId max_UInt1_UInt1 = TSymbolUniqueId(247);
+ static constexpr const TSymbolUniqueId max_UInt2_UInt2 = TSymbolUniqueId(248);
+ static constexpr const TSymbolUniqueId max_UInt3_UInt3 = TSymbolUniqueId(249);
+ static constexpr const TSymbolUniqueId max_UInt4_UInt4 = TSymbolUniqueId(250);
+ static constexpr const TSymbolUniqueId max_UInt2_UInt1 = TSymbolUniqueId(251);
+ static constexpr const TSymbolUniqueId max_UInt3_UInt1 = TSymbolUniqueId(252);
+ static constexpr const TSymbolUniqueId max_UInt4_UInt1 = TSymbolUniqueId(253);
+ static constexpr const TSymbolUniqueId clamp_Float1_Float1_Float1 = TSymbolUniqueId(254);
+ static constexpr const TSymbolUniqueId clamp_Float2_Float1_Float1 = TSymbolUniqueId(255);
+ static constexpr const TSymbolUniqueId clamp_Float3_Float1_Float1 = TSymbolUniqueId(256);
+ static constexpr const TSymbolUniqueId clamp_Float4_Float1_Float1 = TSymbolUniqueId(257);
+ static constexpr const TSymbolUniqueId clamp_Float2_Float2_Float2 = TSymbolUniqueId(258);
+ static constexpr const TSymbolUniqueId clamp_Float3_Float3_Float3 = TSymbolUniqueId(259);
+ static constexpr const TSymbolUniqueId clamp_Float4_Float4_Float4 = TSymbolUniqueId(260);
+ static constexpr const TSymbolUniqueId clamp_Double1_Double1_Double1 = TSymbolUniqueId(261);
+ static constexpr const TSymbolUniqueId clamp_Double2_Double1_Double1 = TSymbolUniqueId(262);
+ static constexpr const TSymbolUniqueId clamp_Double3_Double1_Double1 = TSymbolUniqueId(263);
+ static constexpr const TSymbolUniqueId clamp_Double4_Double1_Double1 = TSymbolUniqueId(264);
+ static constexpr const TSymbolUniqueId clamp_Double2_Double2_Double2 = TSymbolUniqueId(265);
+ static constexpr const TSymbolUniqueId clamp_Double3_Double3_Double3 = TSymbolUniqueId(266);
+ static constexpr const TSymbolUniqueId clamp_Double4_Double4_Double4 = TSymbolUniqueId(267);
+ static constexpr const TSymbolUniqueId clamp_Int1_Int1_Int1 = TSymbolUniqueId(268);
+ static constexpr const TSymbolUniqueId clamp_Int2_Int1_Int1 = TSymbolUniqueId(269);
+ static constexpr const TSymbolUniqueId clamp_Int3_Int1_Int1 = TSymbolUniqueId(270);
+ static constexpr const TSymbolUniqueId clamp_Int4_Int1_Int1 = TSymbolUniqueId(271);
+ static constexpr const TSymbolUniqueId clamp_Int2_Int2_Int2 = TSymbolUniqueId(272);
+ static constexpr const TSymbolUniqueId clamp_Int3_Int3_Int3 = TSymbolUniqueId(273);
+ static constexpr const TSymbolUniqueId clamp_Int4_Int4_Int4 = TSymbolUniqueId(274);
+ static constexpr const TSymbolUniqueId clamp_UInt1_UInt1_UInt1 = TSymbolUniqueId(275);
+ static constexpr const TSymbolUniqueId clamp_UInt2_UInt1_UInt1 = TSymbolUniqueId(276);
+ static constexpr const TSymbolUniqueId clamp_UInt3_UInt1_UInt1 = TSymbolUniqueId(277);
+ static constexpr const TSymbolUniqueId clamp_UInt4_UInt1_UInt1 = TSymbolUniqueId(278);
+ static constexpr const TSymbolUniqueId clamp_UInt2_UInt2_UInt2 = TSymbolUniqueId(279);
+ static constexpr const TSymbolUniqueId clamp_UInt3_UInt3_UInt3 = TSymbolUniqueId(280);
+ static constexpr const TSymbolUniqueId clamp_UInt4_UInt4_UInt4 = TSymbolUniqueId(281);
+ static constexpr const TSymbolUniqueId mix_Float1_Float1_Float1 = TSymbolUniqueId(282);
+ static constexpr const TSymbolUniqueId mix_Float2_Float2_Float1 = TSymbolUniqueId(283);
+ static constexpr const TSymbolUniqueId mix_Float3_Float3_Float1 = TSymbolUniqueId(284);
+ static constexpr const TSymbolUniqueId mix_Float4_Float4_Float1 = TSymbolUniqueId(285);
+ static constexpr const TSymbolUniqueId mix_Float2_Float2_Float2 = TSymbolUniqueId(286);
+ static constexpr const TSymbolUniqueId mix_Float3_Float3_Float3 = TSymbolUniqueId(287);
+ static constexpr const TSymbolUniqueId mix_Float4_Float4_Float4 = TSymbolUniqueId(288);
+ static constexpr const TSymbolUniqueId mix_Double1_Double1_Double1 = TSymbolUniqueId(289);
+ static constexpr const TSymbolUniqueId mix_Double2_Double2_Double1 = TSymbolUniqueId(290);
+ static constexpr const TSymbolUniqueId mix_Double3_Double3_Double1 = TSymbolUniqueId(291);
+ static constexpr const TSymbolUniqueId mix_Double4_Double4_Double1 = TSymbolUniqueId(292);
+ static constexpr const TSymbolUniqueId mix_Double2_Double2_Double2 = TSymbolUniqueId(293);
+ static constexpr const TSymbolUniqueId mix_Double3_Double3_Double3 = TSymbolUniqueId(294);
+ static constexpr const TSymbolUniqueId mix_Double4_Double4_Double4 = TSymbolUniqueId(295);
+ static constexpr const TSymbolUniqueId mix_Float1_Float1_Bool1 = TSymbolUniqueId(296);
+ static constexpr const TSymbolUniqueId pt00F = TSymbolUniqueId(297);
+ static constexpr const TSymbolUniqueId mix_Float2_Float2_Bool2 = TSymbolUniqueId(298);
+ static constexpr const TSymbolUniqueId pt10F = TSymbolUniqueId(299);
+ static constexpr const TSymbolUniqueId mix_Float3_Float3_Bool3 = TSymbolUniqueId(300);
+ static constexpr const TSymbolUniqueId pt20F = TSymbolUniqueId(301);
+ static constexpr const TSymbolUniqueId mix_Float4_Float4_Bool4 = TSymbolUniqueId(302);
+ static constexpr const TSymbolUniqueId pt30F = TSymbolUniqueId(303);
+ static constexpr const TSymbolUniqueId mix_Double1_Double1_Bool1 = TSymbolUniqueId(304);
+ static constexpr const TSymbolUniqueId mix_Double2_Double2_Bool2 = TSymbolUniqueId(305);
+ static constexpr const TSymbolUniqueId mix_Double3_Double3_Bool3 = TSymbolUniqueId(306);
+ static constexpr const TSymbolUniqueId mix_Double4_Double4_Bool4 = TSymbolUniqueId(307);
+ static constexpr const TSymbolUniqueId mix_Int1_Int1_Bool1 = TSymbolUniqueId(308);
+ static constexpr const TSymbolUniqueId mix_Int2_Int2_Bool2 = TSymbolUniqueId(309);
+ static constexpr const TSymbolUniqueId mix_Int3_Int3_Bool3 = TSymbolUniqueId(310);
+ static constexpr const TSymbolUniqueId mix_Int4_Int4_Bool4 = TSymbolUniqueId(311);
+ static constexpr const TSymbolUniqueId mix_UInt1_UInt1_Bool1 = TSymbolUniqueId(312);
+ static constexpr const TSymbolUniqueId mix_UInt2_UInt2_Bool2 = TSymbolUniqueId(313);
+ static constexpr const TSymbolUniqueId mix_UInt3_UInt3_Bool3 = TSymbolUniqueId(314);
+ static constexpr const TSymbolUniqueId mix_UInt4_UInt4_Bool4 = TSymbolUniqueId(315);
+ static constexpr const TSymbolUniqueId mix_Bool1_Bool1_Bool1 = TSymbolUniqueId(316);
+ static constexpr const TSymbolUniqueId mix_Bool2_Bool2_Bool2 = TSymbolUniqueId(317);
+ static constexpr const TSymbolUniqueId mix_Bool3_Bool3_Bool3 = TSymbolUniqueId(318);
+ static constexpr const TSymbolUniqueId mix_Bool4_Bool4_Bool4 = TSymbolUniqueId(319);
+ static constexpr const TSymbolUniqueId step_Float1_Float1 = TSymbolUniqueId(320);
+ static constexpr const TSymbolUniqueId step_Float2_Float2 = TSymbolUniqueId(321);
+ static constexpr const TSymbolUniqueId step_Float3_Float3 = TSymbolUniqueId(322);
+ static constexpr const TSymbolUniqueId step_Float4_Float4 = TSymbolUniqueId(323);
+ static constexpr const TSymbolUniqueId step_Float1_Float2 = TSymbolUniqueId(324);
+ static constexpr const TSymbolUniqueId step_Float1_Float3 = TSymbolUniqueId(325);
+ static constexpr const TSymbolUniqueId step_Float1_Float4 = TSymbolUniqueId(326);
+ static constexpr const TSymbolUniqueId step_Double1_Double1 = TSymbolUniqueId(327);
+ static constexpr const TSymbolUniqueId step_Double2_Double2 = TSymbolUniqueId(328);
+ static constexpr const TSymbolUniqueId step_Double3_Double3 = TSymbolUniqueId(329);
+ static constexpr const TSymbolUniqueId step_Double4_Double4 = TSymbolUniqueId(330);
+ static constexpr const TSymbolUniqueId step_Double1_Double2 = TSymbolUniqueId(331);
+ static constexpr const TSymbolUniqueId step_Double1_Double3 = TSymbolUniqueId(332);
+ static constexpr const TSymbolUniqueId step_Double1_Double4 = TSymbolUniqueId(333);
+ static constexpr const TSymbolUniqueId smoothstep_Double1_Double1_Double1 =
+ TSymbolUniqueId(334);
+ static constexpr const TSymbolUniqueId smoothstep_Double2_Double2_Double2 =
+ TSymbolUniqueId(335);
+ static constexpr const TSymbolUniqueId smoothstep_Double3_Double3_Double3 =
+ TSymbolUniqueId(336);
+ static constexpr const TSymbolUniqueId smoothstep_Double4_Double4_Double4 =
+ TSymbolUniqueId(337);
+ static constexpr const TSymbolUniqueId smoothstep_Double1_Double1_Double2 =
+ TSymbolUniqueId(338);
+ static constexpr const TSymbolUniqueId smoothstep_Double1_Double1_Double3 =
+ TSymbolUniqueId(339);
+ static constexpr const TSymbolUniqueId smoothstep_Double1_Double1_Double4 =
+ TSymbolUniqueId(340);
+ static constexpr const TSymbolUniqueId smoothstep_Float1_Float1_Float1 = TSymbolUniqueId(341);
+ static constexpr const TSymbolUniqueId smoothstep_Float2_Float2_Float2 = TSymbolUniqueId(342);
+ static constexpr const TSymbolUniqueId smoothstep_Float3_Float3_Float3 = TSymbolUniqueId(343);
+ static constexpr const TSymbolUniqueId smoothstep_Float4_Float4_Float4 = TSymbolUniqueId(344);
+ static constexpr const TSymbolUniqueId smoothstep_Float1_Float1_Float2 = TSymbolUniqueId(345);
+ static constexpr const TSymbolUniqueId smoothstep_Float1_Float1_Float3 = TSymbolUniqueId(346);
+ static constexpr const TSymbolUniqueId smoothstep_Float1_Float1_Float4 = TSymbolUniqueId(347);
+ static constexpr const TSymbolUniqueId modf_Float1_Float1 = TSymbolUniqueId(348);
+ static constexpr const TSymbolUniqueId pt_o_00B = TSymbolUniqueId(349);
+ static constexpr const TSymbolUniqueId modf_Float2_Float2 = TSymbolUniqueId(350);
+ static constexpr const TSymbolUniqueId pt_o_10B = TSymbolUniqueId(351);
+ static constexpr const TSymbolUniqueId modf_Float3_Float3 = TSymbolUniqueId(352);
+ static constexpr const TSymbolUniqueId pt_o_20B = TSymbolUniqueId(353);
+ static constexpr const TSymbolUniqueId modf_Float4_Float4 = TSymbolUniqueId(354);
+ static constexpr const TSymbolUniqueId pt_o_30B = TSymbolUniqueId(355);
+ static constexpr const TSymbolUniqueId modf_Double1_Double1 = TSymbolUniqueId(356);
+ static constexpr const TSymbolUniqueId pt_o_00C = TSymbolUniqueId(357);
+ static constexpr const TSymbolUniqueId modf_Double2_Double2 = TSymbolUniqueId(358);
+ static constexpr const TSymbolUniqueId pt_o_10C = TSymbolUniqueId(359);
+ static constexpr const TSymbolUniqueId modf_Double3_Double3 = TSymbolUniqueId(360);
+ static constexpr const TSymbolUniqueId pt_o_20C = TSymbolUniqueId(361);
+ static constexpr const TSymbolUniqueId modf_Double4_Double4 = TSymbolUniqueId(362);
+ static constexpr const TSymbolUniqueId pt_o_30C = TSymbolUniqueId(363);
+ static constexpr const TSymbolUniqueId isnan_Float1 = TSymbolUniqueId(364);
+ static constexpr const TSymbolUniqueId isnan_Float2 = TSymbolUniqueId(365);
+ static constexpr const TSymbolUniqueId isnan_Float3 = TSymbolUniqueId(366);
+ static constexpr const TSymbolUniqueId isnan_Float4 = TSymbolUniqueId(367);
+ static constexpr const TSymbolUniqueId isnan_Double1 = TSymbolUniqueId(368);
+ static constexpr const TSymbolUniqueId isnan_Double2 = TSymbolUniqueId(369);
+ static constexpr const TSymbolUniqueId isnan_Double3 = TSymbolUniqueId(370);
+ static constexpr const TSymbolUniqueId isnan_Double4 = TSymbolUniqueId(371);
+ static constexpr const TSymbolUniqueId isinf_Float1 = TSymbolUniqueId(372);
+ static constexpr const TSymbolUniqueId isinf_Float2 = TSymbolUniqueId(373);
+ static constexpr const TSymbolUniqueId isinf_Float3 = TSymbolUniqueId(374);
+ static constexpr const TSymbolUniqueId isinf_Float4 = TSymbolUniqueId(375);
+ static constexpr const TSymbolUniqueId isinf_Double1 = TSymbolUniqueId(376);
+ static constexpr const TSymbolUniqueId isinf_Double2 = TSymbolUniqueId(377);
+ static constexpr const TSymbolUniqueId isinf_Double3 = TSymbolUniqueId(378);
+ static constexpr const TSymbolUniqueId isinf_Double4 = TSymbolUniqueId(379);
+ static constexpr const TSymbolUniqueId floatBitsToInt_Float1 = TSymbolUniqueId(380);
+ static constexpr const TSymbolUniqueId floatBitsToInt_Float2 = TSymbolUniqueId(381);
+ static constexpr const TSymbolUniqueId floatBitsToInt_Float3 = TSymbolUniqueId(382);
+ static constexpr const TSymbolUniqueId floatBitsToInt_Float4 = TSymbolUniqueId(383);
+ static constexpr const TSymbolUniqueId floatBitsToUint_Float1 = TSymbolUniqueId(384);
+ static constexpr const TSymbolUniqueId floatBitsToUint_Float2 = TSymbolUniqueId(385);
+ static constexpr const TSymbolUniqueId floatBitsToUint_Float3 = TSymbolUniqueId(386);
+ static constexpr const TSymbolUniqueId floatBitsToUint_Float4 = TSymbolUniqueId(387);
+ static constexpr const TSymbolUniqueId intBitsToFloat_Int1 = TSymbolUniqueId(388);
+ static constexpr const TSymbolUniqueId intBitsToFloat_Int2 = TSymbolUniqueId(389);
+ static constexpr const TSymbolUniqueId intBitsToFloat_Int3 = TSymbolUniqueId(390);
+ static constexpr const TSymbolUniqueId intBitsToFloat_Int4 = TSymbolUniqueId(391);
+ static constexpr const TSymbolUniqueId uintBitsToFloat_UInt1 = TSymbolUniqueId(392);
+ static constexpr const TSymbolUniqueId uintBitsToFloat_UInt2 = TSymbolUniqueId(393);
+ static constexpr const TSymbolUniqueId uintBitsToFloat_UInt3 = TSymbolUniqueId(394);
+ static constexpr const TSymbolUniqueId uintBitsToFloat_UInt4 = TSymbolUniqueId(395);
+ static constexpr const TSymbolUniqueId fma_Float1_Float1_Float1 = TSymbolUniqueId(396);
+ static constexpr const TSymbolUniqueId fma_Float2_Float2_Float2 = TSymbolUniqueId(397);
+ static constexpr const TSymbolUniqueId fma_Float3_Float3_Float3 = TSymbolUniqueId(398);
+ static constexpr const TSymbolUniqueId fma_Float4_Float4_Float4 = TSymbolUniqueId(399);
+ static constexpr const TSymbolUniqueId fmaExt_Float1_Float1_Float1 = TSymbolUniqueId(400);
+ static constexpr const TSymbolUniqueId fmaExt_Float2_Float2_Float2 = TSymbolUniqueId(401);
+ static constexpr const TSymbolUniqueId fmaExt_Float3_Float3_Float3 = TSymbolUniqueId(402);
+ static constexpr const TSymbolUniqueId fmaExt_Float4_Float4_Float4 = TSymbolUniqueId(403);
+ static constexpr const TSymbolUniqueId fma_Double1_Double1_Double1 = TSymbolUniqueId(404);
+ static constexpr const TSymbolUniqueId fma_Double2_Double2_Double2 = TSymbolUniqueId(405);
+ static constexpr const TSymbolUniqueId fma_Double3_Double3_Double3 = TSymbolUniqueId(406);
+ static constexpr const TSymbolUniqueId fma_Double4_Double4_Double4 = TSymbolUniqueId(407);
+ static constexpr const TSymbolUniqueId frexp_Float1_Int1 = TSymbolUniqueId(408);
+ static constexpr const TSymbolUniqueId pt_o_00D = TSymbolUniqueId(409);
+ static constexpr const TSymbolUniqueId frexp_Float2_Int2 = TSymbolUniqueId(410);
+ static constexpr const TSymbolUniqueId pt_o_10D = TSymbolUniqueId(411);
+ static constexpr const TSymbolUniqueId frexp_Float3_Int3 = TSymbolUniqueId(412);
+ static constexpr const TSymbolUniqueId pt_o_20D = TSymbolUniqueId(413);
+ static constexpr const TSymbolUniqueId frexp_Float4_Int4 = TSymbolUniqueId(414);
+ static constexpr const TSymbolUniqueId pt_o_30D = TSymbolUniqueId(415);
+ static constexpr const TSymbolUniqueId frexp_Double1_Int1 = TSymbolUniqueId(416);
+ static constexpr const TSymbolUniqueId frexp_Double2_Int2 = TSymbolUniqueId(417);
+ static constexpr const TSymbolUniqueId frexp_Double3_Int3 = TSymbolUniqueId(418);
+ static constexpr const TSymbolUniqueId frexp_Double4_Int4 = TSymbolUniqueId(419);
+ static constexpr const TSymbolUniqueId ldexp_Float1_Int1 = TSymbolUniqueId(420);
+ static constexpr const TSymbolUniqueId ldexp_Float2_Int2 = TSymbolUniqueId(421);
+ static constexpr const TSymbolUniqueId ldexp_Float3_Int3 = TSymbolUniqueId(422);
+ static constexpr const TSymbolUniqueId ldexp_Float4_Int4 = TSymbolUniqueId(423);
+ static constexpr const TSymbolUniqueId ldexp_Double1_Int1 = TSymbolUniqueId(424);
+ static constexpr const TSymbolUniqueId ldexp_Double2_Int2 = TSymbolUniqueId(425);
+ static constexpr const TSymbolUniqueId ldexp_Double3_Int3 = TSymbolUniqueId(426);
+ static constexpr const TSymbolUniqueId ldexp_Double4_Int4 = TSymbolUniqueId(427);
+ static constexpr const TSymbolUniqueId packSnorm2x16_Float2 = TSymbolUniqueId(428);
+ static constexpr const TSymbolUniqueId packHalf2x16_Float2 = TSymbolUniqueId(429);
+ static constexpr const TSymbolUniqueId unpackSnorm2x16_UInt1 = TSymbolUniqueId(430);
+ static constexpr const TSymbolUniqueId unpackHalf2x16_UInt1 = TSymbolUniqueId(431);
+ static constexpr const TSymbolUniqueId packUnorm2x16_Float2 = TSymbolUniqueId(432);
+ static constexpr const TSymbolUniqueId unpackUnorm2x16_UInt1 = TSymbolUniqueId(433);
+ static constexpr const TSymbolUniqueId packUnorm4x8_Float4 = TSymbolUniqueId(434);
+ static constexpr const TSymbolUniqueId packSnorm4x8_Float4 = TSymbolUniqueId(435);
+ static constexpr const TSymbolUniqueId unpackUnorm4x8_UInt1 = TSymbolUniqueId(436);
+ static constexpr const TSymbolUniqueId unpackSnorm4x8_UInt1 = TSymbolUniqueId(437);
+ static constexpr const TSymbolUniqueId packDouble2x32_UInt2 = TSymbolUniqueId(438);
+ static constexpr const TSymbolUniqueId unpackDouble2x32_Double1 = TSymbolUniqueId(439);
+ static constexpr const TSymbolUniqueId length_Float1 = TSymbolUniqueId(440);
+ static constexpr const TSymbolUniqueId length_Float2 = TSymbolUniqueId(441);
+ static constexpr const TSymbolUniqueId length_Float3 = TSymbolUniqueId(442);
+ static constexpr const TSymbolUniqueId length_Float4 = TSymbolUniqueId(443);
+ static constexpr const TSymbolUniqueId length_Double1 = TSymbolUniqueId(444);
+ static constexpr const TSymbolUniqueId length_Double2 = TSymbolUniqueId(445);
+ static constexpr const TSymbolUniqueId length_Double3 = TSymbolUniqueId(446);
+ static constexpr const TSymbolUniqueId length_Double4 = TSymbolUniqueId(447);
+ static constexpr const TSymbolUniqueId distance_Float1_Float1 = TSymbolUniqueId(448);
+ static constexpr const TSymbolUniqueId distance_Float2_Float2 = TSymbolUniqueId(449);
+ static constexpr const TSymbolUniqueId distance_Float3_Float3 = TSymbolUniqueId(450);
+ static constexpr const TSymbolUniqueId distance_Float4_Float4 = TSymbolUniqueId(451);
+ static constexpr const TSymbolUniqueId distance_Double1_Double1 = TSymbolUniqueId(452);
+ static constexpr const TSymbolUniqueId distance_Double2_Double2 = TSymbolUniqueId(453);
+ static constexpr const TSymbolUniqueId distance_Double3_Double3 = TSymbolUniqueId(454);
+ static constexpr const TSymbolUniqueId distance_Double4_Double4 = TSymbolUniqueId(455);
+ static constexpr const TSymbolUniqueId dot_Float1_Float1 = TSymbolUniqueId(456);
+ static constexpr const TSymbolUniqueId dot_Float2_Float2 = TSymbolUniqueId(457);
+ static constexpr const TSymbolUniqueId dot_Float3_Float3 = TSymbolUniqueId(458);
+ static constexpr const TSymbolUniqueId dot_Float4_Float4 = TSymbolUniqueId(459);
+ static constexpr const TSymbolUniqueId dot_Double1_Double1 = TSymbolUniqueId(460);
+ static constexpr const TSymbolUniqueId dot_Double2_Double2 = TSymbolUniqueId(461);
+ static constexpr const TSymbolUniqueId dot_Double3_Double3 = TSymbolUniqueId(462);
+ static constexpr const TSymbolUniqueId dot_Double4_Double4 = TSymbolUniqueId(463);
+ static constexpr const TSymbolUniqueId cross_Float3_Float3 = TSymbolUniqueId(464);
+ static constexpr const TSymbolUniqueId cross_Double3_Double3 = TSymbolUniqueId(465);
+ static constexpr const TSymbolUniqueId normalize_Float1 = TSymbolUniqueId(466);
+ static constexpr const TSymbolUniqueId normalize_Float2 = TSymbolUniqueId(467);
+ static constexpr const TSymbolUniqueId normalize_Float3 = TSymbolUniqueId(468);
+ static constexpr const TSymbolUniqueId normalize_Float4 = TSymbolUniqueId(469);
+ static constexpr const TSymbolUniqueId normalize_Double1 = TSymbolUniqueId(470);
+ static constexpr const TSymbolUniqueId normalize_Double2 = TSymbolUniqueId(471);
+ static constexpr const TSymbolUniqueId normalize_Double3 = TSymbolUniqueId(472);
+ static constexpr const TSymbolUniqueId normalize_Double4 = TSymbolUniqueId(473);
+ static constexpr const TSymbolUniqueId faceforward_Float1_Float1_Float1 = TSymbolUniqueId(474);
+ static constexpr const TSymbolUniqueId faceforward_Float2_Float2_Float2 = TSymbolUniqueId(475);
+ static constexpr const TSymbolUniqueId faceforward_Float3_Float3_Float3 = TSymbolUniqueId(476);
+ static constexpr const TSymbolUniqueId faceforward_Float4_Float4_Float4 = TSymbolUniqueId(477);
+ static constexpr const TSymbolUniqueId faceforward_Double1_Double1_Double1 =
+ TSymbolUniqueId(478);
+ static constexpr const TSymbolUniqueId faceforward_Double2_Double2_Double2 =
+ TSymbolUniqueId(479);
+ static constexpr const TSymbolUniqueId faceforward_Double3_Double3_Double3 =
+ TSymbolUniqueId(480);
+ static constexpr const TSymbolUniqueId faceforward_Double4_Double4_Double4 =
+ TSymbolUniqueId(481);
+ static constexpr const TSymbolUniqueId reflect_Float1_Float1 = TSymbolUniqueId(482);
+ static constexpr const TSymbolUniqueId reflect_Float2_Float2 = TSymbolUniqueId(483);
+ static constexpr const TSymbolUniqueId reflect_Float3_Float3 = TSymbolUniqueId(484);
+ static constexpr const TSymbolUniqueId reflect_Float4_Float4 = TSymbolUniqueId(485);
+ static constexpr const TSymbolUniqueId reflect_Double1_Double1 = TSymbolUniqueId(486);
+ static constexpr const TSymbolUniqueId reflect_Double2_Double2 = TSymbolUniqueId(487);
+ static constexpr const TSymbolUniqueId reflect_Double3_Double3 = TSymbolUniqueId(488);
+ static constexpr const TSymbolUniqueId reflect_Double4_Double4 = TSymbolUniqueId(489);
+ static constexpr const TSymbolUniqueId refract_Float1_Float1_Float1 = TSymbolUniqueId(490);
+ static constexpr const TSymbolUniqueId refract_Float2_Float2_Float1 = TSymbolUniqueId(491);
+ static constexpr const TSymbolUniqueId refract_Float3_Float3_Float1 = TSymbolUniqueId(492);
+ static constexpr const TSymbolUniqueId refract_Float4_Float4_Float1 = TSymbolUniqueId(493);
+ static constexpr const TSymbolUniqueId refract_Double1_Double1_Float1 = TSymbolUniqueId(494);
+ static constexpr const TSymbolUniqueId refract_Double2_Double2_Float1 = TSymbolUniqueId(495);
+ static constexpr const TSymbolUniqueId refract_Double3_Double3_Float1 = TSymbolUniqueId(496);
+ static constexpr const TSymbolUniqueId refract_Double4_Double4_Float1 = TSymbolUniqueId(497);
+ static constexpr const TSymbolUniqueId ftransform = TSymbolUniqueId(498);
+ static constexpr const TSymbolUniqueId matrixCompMult_Float2x2_Float2x2 = TSymbolUniqueId(499);
+ static constexpr const TSymbolUniqueId pt50B = TSymbolUniqueId(500);
+ static constexpr const TSymbolUniqueId matrixCompMult_Float3x3_Float3x3 = TSymbolUniqueId(501);
+ static constexpr const TSymbolUniqueId ptA0B = TSymbolUniqueId(502);
+ static constexpr const TSymbolUniqueId matrixCompMult_Float4x4_Float4x4 = TSymbolUniqueId(503);
+ static constexpr const TSymbolUniqueId ptF0B = TSymbolUniqueId(504);
+ static constexpr const TSymbolUniqueId matrixCompMult_Float2x3_Float2x3 = TSymbolUniqueId(505);
+ static constexpr const TSymbolUniqueId pt90B = TSymbolUniqueId(506);
+ static constexpr const TSymbolUniqueId matrixCompMult_Float3x2_Float3x2 = TSymbolUniqueId(507);
+ static constexpr const TSymbolUniqueId pt60B = TSymbolUniqueId(508);
+ static constexpr const TSymbolUniqueId matrixCompMult_Float2x4_Float2x4 = TSymbolUniqueId(509);
+ static constexpr const TSymbolUniqueId ptD0B = TSymbolUniqueId(510);
+ static constexpr const TSymbolUniqueId matrixCompMult_Float4x2_Float4x2 = TSymbolUniqueId(511);
+ static constexpr const TSymbolUniqueId pt70B = TSymbolUniqueId(512);
+ static constexpr const TSymbolUniqueId matrixCompMult_Float3x4_Float3x4 = TSymbolUniqueId(513);
+ static constexpr const TSymbolUniqueId ptE0B = TSymbolUniqueId(514);
+ static constexpr const TSymbolUniqueId matrixCompMult_Float4x3_Float4x3 = TSymbolUniqueId(515);
+ static constexpr const TSymbolUniqueId ptB0B = TSymbolUniqueId(516);
+ static constexpr const TSymbolUniqueId outerProduct_Float2_Float2 = TSymbolUniqueId(517);
+ static constexpr const TSymbolUniqueId outerProduct_Float3_Float3 = TSymbolUniqueId(518);
+ static constexpr const TSymbolUniqueId outerProduct_Float4_Float4 = TSymbolUniqueId(519);
+ static constexpr const TSymbolUniqueId outerProduct_Float3_Float2 = TSymbolUniqueId(520);
+ static constexpr const TSymbolUniqueId outerProduct_Float2_Float3 = TSymbolUniqueId(521);
+ static constexpr const TSymbolUniqueId outerProduct_Float4_Float2 = TSymbolUniqueId(522);
+ static constexpr const TSymbolUniqueId outerProduct_Float2_Float4 = TSymbolUniqueId(523);
+ static constexpr const TSymbolUniqueId outerProduct_Float4_Float3 = TSymbolUniqueId(524);
+ static constexpr const TSymbolUniqueId outerProduct_Float3_Float4 = TSymbolUniqueId(525);
+ static constexpr const TSymbolUniqueId transpose_Float2x2 = TSymbolUniqueId(526);
+ static constexpr const TSymbolUniqueId transpose_Float3x3 = TSymbolUniqueId(527);
+ static constexpr const TSymbolUniqueId transpose_Float4x4 = TSymbolUniqueId(528);
+ static constexpr const TSymbolUniqueId transpose_Float3x2 = TSymbolUniqueId(529);
+ static constexpr const TSymbolUniqueId transpose_Float2x3 = TSymbolUniqueId(530);
+ static constexpr const TSymbolUniqueId transpose_Float4x2 = TSymbolUniqueId(531);
+ static constexpr const TSymbolUniqueId transpose_Float2x4 = TSymbolUniqueId(532);
+ static constexpr const TSymbolUniqueId transpose_Float4x3 = TSymbolUniqueId(533);
+ static constexpr const TSymbolUniqueId transpose_Float3x4 = TSymbolUniqueId(534);
+ static constexpr const TSymbolUniqueId determinant_Float2x2 = TSymbolUniqueId(535);
+ static constexpr const TSymbolUniqueId determinant_Float3x3 = TSymbolUniqueId(536);
+ static constexpr const TSymbolUniqueId determinant_Float4x4 = TSymbolUniqueId(537);
+ static constexpr const TSymbolUniqueId inverse_Float2x2 = TSymbolUniqueId(538);
+ static constexpr const TSymbolUniqueId inverse_Float3x3 = TSymbolUniqueId(539);
+ static constexpr const TSymbolUniqueId inverse_Float4x4 = TSymbolUniqueId(540);
+ static constexpr const TSymbolUniqueId lessThan_Float2_Float2 = TSymbolUniqueId(541);
+ static constexpr const TSymbolUniqueId lessThan_Float3_Float3 = TSymbolUniqueId(542);
+ static constexpr const TSymbolUniqueId lessThan_Float4_Float4 = TSymbolUniqueId(543);
+ static constexpr const TSymbolUniqueId lessThan_Int2_Int2 = TSymbolUniqueId(544);
+ static constexpr const TSymbolUniqueId lessThan_Int3_Int3 = TSymbolUniqueId(545);
+ static constexpr const TSymbolUniqueId lessThan_Int4_Int4 = TSymbolUniqueId(546);
+ static constexpr const TSymbolUniqueId lessThan_UInt2_UInt2 = TSymbolUniqueId(547);
+ static constexpr const TSymbolUniqueId lessThan_UInt3_UInt3 = TSymbolUniqueId(548);
+ static constexpr const TSymbolUniqueId lessThan_UInt4_UInt4 = TSymbolUniqueId(549);
+ static constexpr const TSymbolUniqueId lessThanEqual_Float2_Float2 = TSymbolUniqueId(550);
+ static constexpr const TSymbolUniqueId lessThanEqual_Float3_Float3 = TSymbolUniqueId(551);
+ static constexpr const TSymbolUniqueId lessThanEqual_Float4_Float4 = TSymbolUniqueId(552);
+ static constexpr const TSymbolUniqueId lessThanEqual_Int2_Int2 = TSymbolUniqueId(553);
+ static constexpr const TSymbolUniqueId lessThanEqual_Int3_Int3 = TSymbolUniqueId(554);
+ static constexpr const TSymbolUniqueId lessThanEqual_Int4_Int4 = TSymbolUniqueId(555);
+ static constexpr const TSymbolUniqueId lessThanEqual_UInt2_UInt2 = TSymbolUniqueId(556);
+ static constexpr const TSymbolUniqueId lessThanEqual_UInt3_UInt3 = TSymbolUniqueId(557);
+ static constexpr const TSymbolUniqueId lessThanEqual_UInt4_UInt4 = TSymbolUniqueId(558);
+ static constexpr const TSymbolUniqueId greaterThan_Float2_Float2 = TSymbolUniqueId(559);
+ static constexpr const TSymbolUniqueId greaterThan_Float3_Float3 = TSymbolUniqueId(560);
+ static constexpr const TSymbolUniqueId greaterThan_Float4_Float4 = TSymbolUniqueId(561);
+ static constexpr const TSymbolUniqueId greaterThan_Int2_Int2 = TSymbolUniqueId(562);
+ static constexpr const TSymbolUniqueId greaterThan_Int3_Int3 = TSymbolUniqueId(563);
+ static constexpr const TSymbolUniqueId greaterThan_Int4_Int4 = TSymbolUniqueId(564);
+ static constexpr const TSymbolUniqueId greaterThan_UInt2_UInt2 = TSymbolUniqueId(565);
+ static constexpr const TSymbolUniqueId greaterThan_UInt3_UInt3 = TSymbolUniqueId(566);
+ static constexpr const TSymbolUniqueId greaterThan_UInt4_UInt4 = TSymbolUniqueId(567);
+ static constexpr const TSymbolUniqueId greaterThanEqual_Float2_Float2 = TSymbolUniqueId(568);
+ static constexpr const TSymbolUniqueId greaterThanEqual_Float3_Float3 = TSymbolUniqueId(569);
+ static constexpr const TSymbolUniqueId greaterThanEqual_Float4_Float4 = TSymbolUniqueId(570);
+ static constexpr const TSymbolUniqueId greaterThanEqual_Int2_Int2 = TSymbolUniqueId(571);
+ static constexpr const TSymbolUniqueId greaterThanEqual_Int3_Int3 = TSymbolUniqueId(572);
+ static constexpr const TSymbolUniqueId greaterThanEqual_Int4_Int4 = TSymbolUniqueId(573);
+ static constexpr const TSymbolUniqueId greaterThanEqual_UInt2_UInt2 = TSymbolUniqueId(574);
+ static constexpr const TSymbolUniqueId greaterThanEqual_UInt3_UInt3 = TSymbolUniqueId(575);
+ static constexpr const TSymbolUniqueId greaterThanEqual_UInt4_UInt4 = TSymbolUniqueId(576);
+ static constexpr const TSymbolUniqueId equal_Float2_Float2 = TSymbolUniqueId(577);
+ static constexpr const TSymbolUniqueId equal_Float3_Float3 = TSymbolUniqueId(578);
+ static constexpr const TSymbolUniqueId equal_Float4_Float4 = TSymbolUniqueId(579);
+ static constexpr const TSymbolUniqueId equal_Int2_Int2 = TSymbolUniqueId(580);
+ static constexpr const TSymbolUniqueId equal_Int3_Int3 = TSymbolUniqueId(581);
+ static constexpr const TSymbolUniqueId equal_Int4_Int4 = TSymbolUniqueId(582);
+ static constexpr const TSymbolUniqueId equal_UInt2_UInt2 = TSymbolUniqueId(583);
+ static constexpr const TSymbolUniqueId equal_UInt3_UInt3 = TSymbolUniqueId(584);
+ static constexpr const TSymbolUniqueId equal_UInt4_UInt4 = TSymbolUniqueId(585);
+ static constexpr const TSymbolUniqueId equal_Bool2_Bool2 = TSymbolUniqueId(586);
+ static constexpr const TSymbolUniqueId equal_Bool3_Bool3 = TSymbolUniqueId(587);
+ static constexpr const TSymbolUniqueId equal_Bool4_Bool4 = TSymbolUniqueId(588);
+ static constexpr const TSymbolUniqueId notEqual_Float2_Float2 = TSymbolUniqueId(589);
+ static constexpr const TSymbolUniqueId notEqual_Float3_Float3 = TSymbolUniqueId(590);
+ static constexpr const TSymbolUniqueId notEqual_Float4_Float4 = TSymbolUniqueId(591);
+ static constexpr const TSymbolUniqueId notEqual_Int2_Int2 = TSymbolUniqueId(592);
+ static constexpr const TSymbolUniqueId notEqual_Int3_Int3 = TSymbolUniqueId(593);
+ static constexpr const TSymbolUniqueId notEqual_Int4_Int4 = TSymbolUniqueId(594);
+ static constexpr const TSymbolUniqueId notEqual_UInt2_UInt2 = TSymbolUniqueId(595);
+ static constexpr const TSymbolUniqueId notEqual_UInt3_UInt3 = TSymbolUniqueId(596);
+ static constexpr const TSymbolUniqueId notEqual_UInt4_UInt4 = TSymbolUniqueId(597);
+ static constexpr const TSymbolUniqueId notEqual_Bool2_Bool2 = TSymbolUniqueId(598);
+ static constexpr const TSymbolUniqueId notEqual_Bool3_Bool3 = TSymbolUniqueId(599);
+ static constexpr const TSymbolUniqueId notEqual_Bool4_Bool4 = TSymbolUniqueId(600);
+ static constexpr const TSymbolUniqueId any_Bool2 = TSymbolUniqueId(601);
+ static constexpr const TSymbolUniqueId any_Bool3 = TSymbolUniqueId(602);
+ static constexpr const TSymbolUniqueId any_Bool4 = TSymbolUniqueId(603);
+ static constexpr const TSymbolUniqueId all_Bool2 = TSymbolUniqueId(604);
+ static constexpr const TSymbolUniqueId all_Bool3 = TSymbolUniqueId(605);
+ static constexpr const TSymbolUniqueId all_Bool4 = TSymbolUniqueId(606);
+ static constexpr const TSymbolUniqueId notFunc_Bool2 = TSymbolUniqueId(607);
+ static constexpr const TSymbolUniqueId notFunc_Bool3 = TSymbolUniqueId(608);
+ static constexpr const TSymbolUniqueId notFunc_Bool4 = TSymbolUniqueId(609);
+ static constexpr const TSymbolUniqueId bitfieldExtract_Int1_Int1_Int1 = TSymbolUniqueId(610);
+ static constexpr const TSymbolUniqueId bitfieldExtract_Int2_Int1_Int1 = TSymbolUniqueId(611);
+ static constexpr const TSymbolUniqueId bitfieldExtract_Int3_Int1_Int1 = TSymbolUniqueId(612);
+ static constexpr const TSymbolUniqueId bitfieldExtract_Int4_Int1_Int1 = TSymbolUniqueId(613);
+ static constexpr const TSymbolUniqueId bitfieldExtract_UInt1_Int1_Int1 = TSymbolUniqueId(614);
+ static constexpr const TSymbolUniqueId bitfieldExtract_UInt2_Int1_Int1 = TSymbolUniqueId(615);
+ static constexpr const TSymbolUniqueId bitfieldExtract_UInt3_Int1_Int1 = TSymbolUniqueId(616);
+ static constexpr const TSymbolUniqueId bitfieldExtract_UInt4_Int1_Int1 = TSymbolUniqueId(617);
+ static constexpr const TSymbolUniqueId bitfieldInsert_Int1_Int1_Int1_Int1 =
+ TSymbolUniqueId(618);
+ static constexpr const TSymbolUniqueId bitfieldInsert_Int2_Int2_Int1_Int1 =
+ TSymbolUniqueId(619);
+ static constexpr const TSymbolUniqueId bitfieldInsert_Int3_Int3_Int1_Int1 =
+ TSymbolUniqueId(620);
+ static constexpr const TSymbolUniqueId bitfieldInsert_Int4_Int4_Int1_Int1 =
+ TSymbolUniqueId(621);
+ static constexpr const TSymbolUniqueId bitfieldInsert_UInt1_UInt1_Int1_Int1 =
+ TSymbolUniqueId(622);
+ static constexpr const TSymbolUniqueId bitfieldInsert_UInt2_UInt2_Int1_Int1 =
+ TSymbolUniqueId(623);
+ static constexpr const TSymbolUniqueId bitfieldInsert_UInt3_UInt3_Int1_Int1 =
+ TSymbolUniqueId(624);
+ static constexpr const TSymbolUniqueId bitfieldInsert_UInt4_UInt4_Int1_Int1 =
+ TSymbolUniqueId(625);
+ static constexpr const TSymbolUniqueId bitfieldReverse_Int1 = TSymbolUniqueId(626);
+ static constexpr const TSymbolUniqueId bitfieldReverse_Int2 = TSymbolUniqueId(627);
+ static constexpr const TSymbolUniqueId bitfieldReverse_Int3 = TSymbolUniqueId(628);
+ static constexpr const TSymbolUniqueId bitfieldReverse_Int4 = TSymbolUniqueId(629);
+ static constexpr const TSymbolUniqueId bitfieldReverse_UInt1 = TSymbolUniqueId(630);
+ static constexpr const TSymbolUniqueId bitfieldReverse_UInt2 = TSymbolUniqueId(631);
+ static constexpr const TSymbolUniqueId bitfieldReverse_UInt3 = TSymbolUniqueId(632);
+ static constexpr const TSymbolUniqueId bitfieldReverse_UInt4 = TSymbolUniqueId(633);
+ static constexpr const TSymbolUniqueId bitCount_Int1 = TSymbolUniqueId(634);
+ static constexpr const TSymbolUniqueId bitCount_Int2 = TSymbolUniqueId(635);
+ static constexpr const TSymbolUniqueId bitCount_Int3 = TSymbolUniqueId(636);
+ static constexpr const TSymbolUniqueId bitCount_Int4 = TSymbolUniqueId(637);
+ static constexpr const TSymbolUniqueId bitCount_UInt1 = TSymbolUniqueId(638);
+ static constexpr const TSymbolUniqueId bitCount_UInt2 = TSymbolUniqueId(639);
+ static constexpr const TSymbolUniqueId bitCount_UInt3 = TSymbolUniqueId(640);
+ static constexpr const TSymbolUniqueId bitCount_UInt4 = TSymbolUniqueId(641);
+ static constexpr const TSymbolUniqueId findLSB_Int1 = TSymbolUniqueId(642);
+ static constexpr const TSymbolUniqueId findLSB_Int2 = TSymbolUniqueId(643);
+ static constexpr const TSymbolUniqueId findLSB_Int3 = TSymbolUniqueId(644);
+ static constexpr const TSymbolUniqueId findLSB_Int4 = TSymbolUniqueId(645);
+ static constexpr const TSymbolUniqueId findLSB_UInt1 = TSymbolUniqueId(646);
+ static constexpr const TSymbolUniqueId findLSB_UInt2 = TSymbolUniqueId(647);
+ static constexpr const TSymbolUniqueId findLSB_UInt3 = TSymbolUniqueId(648);
+ static constexpr const TSymbolUniqueId findLSB_UInt4 = TSymbolUniqueId(649);
+ static constexpr const TSymbolUniqueId findMSB_Int1 = TSymbolUniqueId(650);
+ static constexpr const TSymbolUniqueId findMSB_Int2 = TSymbolUniqueId(651);
+ static constexpr const TSymbolUniqueId findMSB_Int3 = TSymbolUniqueId(652);
+ static constexpr const TSymbolUniqueId findMSB_Int4 = TSymbolUniqueId(653);
+ static constexpr const TSymbolUniqueId findMSB_UInt1 = TSymbolUniqueId(654);
+ static constexpr const TSymbolUniqueId findMSB_UInt2 = TSymbolUniqueId(655);
+ static constexpr const TSymbolUniqueId findMSB_UInt3 = TSymbolUniqueId(656);
+ static constexpr const TSymbolUniqueId findMSB_UInt4 = TSymbolUniqueId(657);
+ static constexpr const TSymbolUniqueId uaddCarry_UInt1_UInt1_UInt1 = TSymbolUniqueId(658);
+ static constexpr const TSymbolUniqueId pt_o_00E = TSymbolUniqueId(659);
+ static constexpr const TSymbolUniqueId uaddCarry_UInt2_UInt2_UInt2 = TSymbolUniqueId(660);
+ static constexpr const TSymbolUniqueId pt_o_10E = TSymbolUniqueId(661);
+ static constexpr const TSymbolUniqueId uaddCarry_UInt3_UInt3_UInt3 = TSymbolUniqueId(662);
+ static constexpr const TSymbolUniqueId pt_o_20E = TSymbolUniqueId(663);
+ static constexpr const TSymbolUniqueId uaddCarry_UInt4_UInt4_UInt4 = TSymbolUniqueId(664);
+ static constexpr const TSymbolUniqueId pt_o_30E = TSymbolUniqueId(665);
+ static constexpr const TSymbolUniqueId usubBorrow_UInt1_UInt1_UInt1 = TSymbolUniqueId(666);
+ static constexpr const TSymbolUniqueId usubBorrow_UInt2_UInt2_UInt2 = TSymbolUniqueId(667);
+ static constexpr const TSymbolUniqueId usubBorrow_UInt3_UInt3_UInt3 = TSymbolUniqueId(668);
+ static constexpr const TSymbolUniqueId usubBorrow_UInt4_UInt4_UInt4 = TSymbolUniqueId(669);
+ static constexpr const TSymbolUniqueId umulExtended_UInt1_UInt1_UInt1_UInt1 =
+ TSymbolUniqueId(670);
+ static constexpr const TSymbolUniqueId umulExtended_UInt2_UInt2_UInt2_UInt2 =
+ TSymbolUniqueId(671);
+ static constexpr const TSymbolUniqueId umulExtended_UInt3_UInt3_UInt3_UInt3 =
+ TSymbolUniqueId(672);
+ static constexpr const TSymbolUniqueId umulExtended_UInt4_UInt4_UInt4_UInt4 =
+ TSymbolUniqueId(673);
+ static constexpr const TSymbolUniqueId imulExtended_Int1_Int1_Int1_Int1 = TSymbolUniqueId(674);
+ static constexpr const TSymbolUniqueId imulExtended_Int2_Int2_Int2_Int2 = TSymbolUniqueId(675);
+ static constexpr const TSymbolUniqueId imulExtended_Int3_Int3_Int3_Int3 = TSymbolUniqueId(676);
+ static constexpr const TSymbolUniqueId imulExtended_Int4_Int4_Int4_Int4 = TSymbolUniqueId(677);
+ static constexpr const TSymbolUniqueId texture2D_Sampler2D1_Float2 = TSymbolUniqueId(678);
+ static constexpr const TSymbolUniqueId pt00I = TSymbolUniqueId(679);
+ static constexpr const TSymbolUniqueId texture2DProj_Sampler2D1_Float3 = TSymbolUniqueId(680);
+ static constexpr const TSymbolUniqueId texture2DProj_Sampler2D1_Float4 = TSymbolUniqueId(681);
+ static constexpr const TSymbolUniqueId textureCube_SamplerCube1_Float3 = TSymbolUniqueId(682);
+ static constexpr const TSymbolUniqueId pt00K = TSymbolUniqueId(683);
+ static constexpr const TSymbolUniqueId texture1D_Sampler1D1_Float1 = TSymbolUniqueId(684);
+ static constexpr const TSymbolUniqueId pt00g = TSymbolUniqueId(685);
+ static constexpr const TSymbolUniqueId texture1DProj_Sampler1D1_Float2 = TSymbolUniqueId(686);
+ static constexpr const TSymbolUniqueId texture1DProj_Sampler1D1_Float4 = TSymbolUniqueId(687);
+ static constexpr const TSymbolUniqueId texture3D_Sampler3D1_Float3 = TSymbolUniqueId(688);
+ static constexpr const TSymbolUniqueId pt00J = TSymbolUniqueId(689);
+ static constexpr const TSymbolUniqueId texture3DProj_Sampler3D1_Float4 = TSymbolUniqueId(690);
+ static constexpr const TSymbolUniqueId shadow1D_Sampler1DShadow1_Float3 = TSymbolUniqueId(691);
+ static constexpr const TSymbolUniqueId pt00m = TSymbolUniqueId(692);
+ static constexpr const TSymbolUniqueId shadow1DProj_Sampler1DShadow1_Float4 =
+ TSymbolUniqueId(693);
+ static constexpr const TSymbolUniqueId shadow2D_Sampler2DShadow1_Float3 = TSymbolUniqueId(694);
+ static constexpr const TSymbolUniqueId pt00d = TSymbolUniqueId(695);
+ static constexpr const TSymbolUniqueId shadow2DProj_Sampler2DShadow1_Float4 =
+ TSymbolUniqueId(696);
+ static constexpr const TSymbolUniqueId shadow2DEXT_Sampler2DShadow1_Float3 =
+ TSymbolUniqueId(697);
+ static constexpr const TSymbolUniqueId shadow2DProjEXT_Sampler2DShadow1_Float4 =
+ TSymbolUniqueId(698);
+ static constexpr const TSymbolUniqueId texture2D_SamplerExternalOES1_Float2 =
+ TSymbolUniqueId(699);
+ static constexpr const TSymbolUniqueId pt00M = TSymbolUniqueId(700);
+ static constexpr const TSymbolUniqueId texture2DProj_SamplerExternalOES1_Float3 =
+ TSymbolUniqueId(701);
+ static constexpr const TSymbolUniqueId texture2DProj_SamplerExternalOES1_Float4 =
+ TSymbolUniqueId(702);
+ static constexpr const TSymbolUniqueId texture2DRect_Sampler2DRect1_Float2 =
+ TSymbolUniqueId(703);
+ static constexpr const TSymbolUniqueId pt00O = TSymbolUniqueId(704);
+ static constexpr const TSymbolUniqueId texture2DRectProj_Sampler2DRect1_Float3 =
+ TSymbolUniqueId(705);
+ static constexpr const TSymbolUniqueId texture2DRectProj_Sampler2DRect1_Float4 =
+ TSymbolUniqueId(706);
+ static constexpr const TSymbolUniqueId texture2DGradEXT_Sampler2D1_Float2_Float2_Float2 =
+ TSymbolUniqueId(707);
+ static constexpr const TSymbolUniqueId texture2DProjGradEXT_Sampler2D1_Float3_Float2_Float2 =
+ TSymbolUniqueId(708);
+ static constexpr const TSymbolUniqueId texture2DProjGradEXT_Sampler2D1_Float4_Float2_Float2 =
+ TSymbolUniqueId(709);
+ static constexpr const TSymbolUniqueId textureCubeGradEXT_SamplerCube1_Float3_Float3_Float3 =
+ TSymbolUniqueId(710);
+ static constexpr const TSymbolUniqueId textureVideoWEBGL_SamplerVideoWEBGL1_Float2 =
+ TSymbolUniqueId(711);
+ static constexpr const TSymbolUniqueId pt00y = TSymbolUniqueId(712);
+ static constexpr const TSymbolUniqueId texture2D_Sampler2D1_Float2_Float1 =
+ TSymbolUniqueId(713);
+ static constexpr const TSymbolUniqueId texture2DProj_Sampler2D1_Float3_Float1 =
+ TSymbolUniqueId(714);
+ static constexpr const TSymbolUniqueId texture2DProj_Sampler2D1_Float4_Float1 =
+ TSymbolUniqueId(715);
+ static constexpr const TSymbolUniqueId textureCube_SamplerCube1_Float3_Float1 =
+ TSymbolUniqueId(716);
+ static constexpr const TSymbolUniqueId texture3D_Sampler3D1_Float3_Float1 =
+ TSymbolUniqueId(717);
+ static constexpr const TSymbolUniqueId texture3DProj_Sampler3D1_Float4_Float1 =
+ TSymbolUniqueId(718);
+ static constexpr const TSymbolUniqueId texture1D_Sampler1D1_Float1_Float1 =
+ TSymbolUniqueId(719);
+ static constexpr const TSymbolUniqueId texture1DProj_Sampler1D1_Float2_Float1 =
+ TSymbolUniqueId(720);
+ static constexpr const TSymbolUniqueId texture1DProj_Sampler1D1_Float4_Float1 =
+ TSymbolUniqueId(721);
+ static constexpr const TSymbolUniqueId shadow1D_Sampler1DShadow1_Float3_Float1 =
+ TSymbolUniqueId(722);
+ static constexpr const TSymbolUniqueId shadow1DProj_Sampler1DShadow1_Float4_Float1 =
+ TSymbolUniqueId(723);
+ static constexpr const TSymbolUniqueId shadow2D_Sampler2DShadow1_Float3_Float1 =
+ TSymbolUniqueId(724);
+ static constexpr const TSymbolUniqueId shadow2DProj_Sampler2DShadow1_Float4_Float1 =
+ TSymbolUniqueId(725);
+ static constexpr const TSymbolUniqueId texture2DLod_Sampler2D1_Float2_Float1 =
+ TSymbolUniqueId(726);
+ static constexpr const TSymbolUniqueId texture2DProjLod_Sampler2D1_Float3_Float1 =
+ TSymbolUniqueId(727);
+ static constexpr const TSymbolUniqueId texture2DProjLod_Sampler2D1_Float4_Float1 =
+ TSymbolUniqueId(728);
+ static constexpr const TSymbolUniqueId textureCubeLod_SamplerCube1_Float3_Float1 =
+ TSymbolUniqueId(729);
+ static constexpr const TSymbolUniqueId texture1DLod_Sampler1D1_Float1_Float1 =
+ TSymbolUniqueId(730);
+ static constexpr const TSymbolUniqueId texture1DProjLod_Sampler1D1_Float2_Float1 =
+ TSymbolUniqueId(731);
+ static constexpr const TSymbolUniqueId texture1DProjLod_Sampler1D1_Float4_Float1 =
+ TSymbolUniqueId(732);
+ static constexpr const TSymbolUniqueId shadow1DLod_Sampler1DShadow1_Float3_Float1 =
+ TSymbolUniqueId(733);
+ static constexpr const TSymbolUniqueId shadow1DProjLod_Sampler1DShadow1_Float4_Float1 =
+ TSymbolUniqueId(734);
+ static constexpr const TSymbolUniqueId shadow2DLod_Sampler2DShadow1_Float3_Float1 =
+ TSymbolUniqueId(735);
+ static constexpr const TSymbolUniqueId shadow2DProjLod_Sampler2DShadow1_Float4_Float1 =
+ TSymbolUniqueId(736);
+ static constexpr const TSymbolUniqueId texture3DLod_Sampler3D1_Float3_Float1 =
+ TSymbolUniqueId(737);
+ static constexpr const TSymbolUniqueId texture3DProjLod_Sampler3D1_Float4_Float1 =
+ TSymbolUniqueId(738);
+ static constexpr const TSymbolUniqueId texture2DLodEXT_Sampler2D1_Float2_Float1 =
+ TSymbolUniqueId(739);
+ static constexpr const TSymbolUniqueId texture2DProjLodEXT_Sampler2D1_Float3_Float1 =
+ TSymbolUniqueId(740);
+ static constexpr const TSymbolUniqueId texture2DProjLodEXT_Sampler2D1_Float4_Float1 =
+ TSymbolUniqueId(741);
+ static constexpr const TSymbolUniqueId textureCubeLodEXT_SamplerCube1_Float3_Float1 =
+ TSymbolUniqueId(742);
+ static constexpr const TSymbolUniqueId texture_Sampler2D1_Float2 = TSymbolUniqueId(743);
+ static constexpr const TSymbolUniqueId texture_ISampler2D1_Float2 = TSymbolUniqueId(744);
+ static constexpr const TSymbolUniqueId pt00R = TSymbolUniqueId(745);
+ static constexpr const TSymbolUniqueId texture_USampler2D1_Float2 = TSymbolUniqueId(746);
+ static constexpr const TSymbolUniqueId pt00X = TSymbolUniqueId(747);
+ static constexpr const TSymbolUniqueId texture_Sampler3D1_Float3 = TSymbolUniqueId(748);
+ static constexpr const TSymbolUniqueId texture_ISampler3D1_Float3 = TSymbolUniqueId(749);
+ static constexpr const TSymbolUniqueId pt00S = TSymbolUniqueId(750);
+ static constexpr const TSymbolUniqueId texture_USampler3D1_Float3 = TSymbolUniqueId(751);
+ static constexpr const TSymbolUniqueId pt00Y = TSymbolUniqueId(752);
+ static constexpr const TSymbolUniqueId texture_SamplerCube1_Float3 = TSymbolUniqueId(753);
+ static constexpr const TSymbolUniqueId texture_ISamplerCube1_Float3 = TSymbolUniqueId(754);
+ static constexpr const TSymbolUniqueId pt00T = TSymbolUniqueId(755);
+ static constexpr const TSymbolUniqueId texture_USamplerCube1_Float3 = TSymbolUniqueId(756);
+ static constexpr const TSymbolUniqueId pt00Z = TSymbolUniqueId(757);
+ static constexpr const TSymbolUniqueId texture_Sampler2DArray1_Float3 = TSymbolUniqueId(758);
+ static constexpr const TSymbolUniqueId pt00L = TSymbolUniqueId(759);
+ static constexpr const TSymbolUniqueId texture_ISampler2DArray1_Float3 = TSymbolUniqueId(760);
+ static constexpr const TSymbolUniqueId pt00U = TSymbolUniqueId(761);
+ static constexpr const TSymbolUniqueId texture_USampler2DArray1_Float3 = TSymbolUniqueId(762);
+ static constexpr const TSymbolUniqueId pt00a = TSymbolUniqueId(763);
+ static constexpr const TSymbolUniqueId texture_Sampler2DShadow1_Float3 = TSymbolUniqueId(764);
+ static constexpr const TSymbolUniqueId texture_SamplerCubeShadow1_Float4 = TSymbolUniqueId(765);
+ static constexpr const TSymbolUniqueId pt00e = TSymbolUniqueId(766);
+ static constexpr const TSymbolUniqueId texture_Sampler2DArrayShadow1_Float4 =
+ TSymbolUniqueId(767);
+ static constexpr const TSymbolUniqueId pt00f = TSymbolUniqueId(768);
+ static constexpr const TSymbolUniqueId texture_Sampler1D1_Float1 = TSymbolUniqueId(769);
+ static constexpr const TSymbolUniqueId texture_ISampler1D1_Float1 = TSymbolUniqueId(770);
+ static constexpr const TSymbolUniqueId pt00o = TSymbolUniqueId(771);
+ static constexpr const TSymbolUniqueId texture_USampler1D1_Float1 = TSymbolUniqueId(772);
+ static constexpr const TSymbolUniqueId pt00t = TSymbolUniqueId(773);
+ static constexpr const TSymbolUniqueId texture_Sampler1DShadow1_Float3 = TSymbolUniqueId(774);
+ static constexpr const TSymbolUniqueId texture_Sampler1DArray1_Float3 = TSymbolUniqueId(775);
+ static constexpr const TSymbolUniqueId pt00h = TSymbolUniqueId(776);
+ static constexpr const TSymbolUniqueId texture_ISampler1DArray1_Float3 = TSymbolUniqueId(777);
+ static constexpr const TSymbolUniqueId pt00p = TSymbolUniqueId(778);
+ static constexpr const TSymbolUniqueId texture_USampler1DArray1_Float3 = TSymbolUniqueId(779);
+ static constexpr const TSymbolUniqueId pt00u = TSymbolUniqueId(780);
+ static constexpr const TSymbolUniqueId texture_Sampler1DArrayShadow1_Float3 =
+ TSymbolUniqueId(781);
+ static constexpr const TSymbolUniqueId pt00i = TSymbolUniqueId(782);
+ static constexpr const TSymbolUniqueId texture_Sampler2DRect1_Float2 = TSymbolUniqueId(783);
+ static constexpr const TSymbolUniqueId texture_ISampler2DRect1_Float2 = TSymbolUniqueId(784);
+ static constexpr const TSymbolUniqueId pt00q = TSymbolUniqueId(785);
+ static constexpr const TSymbolUniqueId texture_USampler2DRect1_Float2 = TSymbolUniqueId(786);
+ static constexpr const TSymbolUniqueId pt00v = TSymbolUniqueId(787);
+ static constexpr const TSymbolUniqueId texture_Sampler2DRectShadow1_Float3 =
+ TSymbolUniqueId(788);
+ static constexpr const TSymbolUniqueId pt00n = TSymbolUniqueId(789);
+ static constexpr const TSymbolUniqueId texture_SamplerCubeArray1_Float4 = TSymbolUniqueId(790);
+ static constexpr const TSymbolUniqueId pt00k = TSymbolUniqueId(791);
+ static constexpr const TSymbolUniqueId texture_ISamplerCubeArray1_Float4 = TSymbolUniqueId(792);
+ static constexpr const TSymbolUniqueId pt00s = TSymbolUniqueId(793);
+ static constexpr const TSymbolUniqueId texture_USamplerCubeArray1_Float4 = TSymbolUniqueId(794);
+ static constexpr const TSymbolUniqueId pt00x = TSymbolUniqueId(795);
+ static constexpr const TSymbolUniqueId texture_SamplerCubeArrayShadow1_Float4_Float1 =
+ TSymbolUniqueId(796);
+ static constexpr const TSymbolUniqueId pt00l = TSymbolUniqueId(797);
+ static constexpr const TSymbolUniqueId textureExt_SamplerCubeArray1_Float4 =
+ TSymbolUniqueId(798);
+ static constexpr const TSymbolUniqueId textureExt_ISamplerCubeArray1_Float4 =
+ TSymbolUniqueId(799);
+ static constexpr const TSymbolUniqueId textureExt_USamplerCubeArray1_Float4 =
+ TSymbolUniqueId(800);
+ static constexpr const TSymbolUniqueId textureExt_SamplerCubeArrayShadow1_Float4_Float1 =
+ TSymbolUniqueId(801);
+ static constexpr const TSymbolUniqueId texture_SamplerExternalOES1_Float2 =
+ TSymbolUniqueId(802);
+ static constexpr const TSymbolUniqueId texture_SamplerExternal2DY2YEXT1_Float2 =
+ TSymbolUniqueId(803);
+ static constexpr const TSymbolUniqueId pt00N = TSymbolUniqueId(804);
+ static constexpr const TSymbolUniqueId texture_SamplerVideoWEBGL1_Float2 = TSymbolUniqueId(805);
+ static constexpr const TSymbolUniqueId textureProj_Sampler2D1_Float3 = TSymbolUniqueId(806);
+ static constexpr const TSymbolUniqueId textureProj_ISampler2D1_Float3 = TSymbolUniqueId(807);
+ static constexpr const TSymbolUniqueId textureProj_USampler2D1_Float3 = TSymbolUniqueId(808);
+ static constexpr const TSymbolUniqueId textureProj_Sampler2D1_Float4 = TSymbolUniqueId(809);
+ static constexpr const TSymbolUniqueId textureProj_ISampler2D1_Float4 = TSymbolUniqueId(810);
+ static constexpr const TSymbolUniqueId textureProj_USampler2D1_Float4 = TSymbolUniqueId(811);
+ static constexpr const TSymbolUniqueId textureProj_Sampler3D1_Float4 = TSymbolUniqueId(812);
+ static constexpr const TSymbolUniqueId textureProj_ISampler3D1_Float4 = TSymbolUniqueId(813);
+ static constexpr const TSymbolUniqueId textureProj_USampler3D1_Float4 = TSymbolUniqueId(814);
+ static constexpr const TSymbolUniqueId textureProj_Sampler2DShadow1_Float4 =
+ TSymbolUniqueId(815);
+ static constexpr const TSymbolUniqueId textureProj_Sampler1D1_Float2 = TSymbolUniqueId(816);
+ static constexpr const TSymbolUniqueId textureProj_ISampler1D1_Float2 = TSymbolUniqueId(817);
+ static constexpr const TSymbolUniqueId textureProj_USampler1D1_Float2 = TSymbolUniqueId(818);
+ static constexpr const TSymbolUniqueId textureProj_Sampler1D1_Float4 = TSymbolUniqueId(819);
+ static constexpr const TSymbolUniqueId textureProj_ISampler1D1_Float4 = TSymbolUniqueId(820);
+ static constexpr const TSymbolUniqueId textureProj_USampler1D1_Float4 = TSymbolUniqueId(821);
+ static constexpr const TSymbolUniqueId textureProj_Sampler1DShadow1_Float4 =
+ TSymbolUniqueId(822);
+ static constexpr const TSymbolUniqueId textureProj_Sampler2DRect1_Float3 = TSymbolUniqueId(823);
+ static constexpr const TSymbolUniqueId textureProj_ISampler2DRect1_Float3 =
+ TSymbolUniqueId(824);
+ static constexpr const TSymbolUniqueId textureProj_USampler2DRect1_Float3 =
+ TSymbolUniqueId(825);
+ static constexpr const TSymbolUniqueId textureProj_Sampler2DRect1_Float4 = TSymbolUniqueId(826);
+ static constexpr const TSymbolUniqueId textureProj_ISampler2DRect1_Float4 =
+ TSymbolUniqueId(827);
+ static constexpr const TSymbolUniqueId textureProj_USampler2DRect1_Float4 =
+ TSymbolUniqueId(828);
+ static constexpr const TSymbolUniqueId textureProj_Sampler2DRectShadow1_Float4 =
+ TSymbolUniqueId(829);
+ static constexpr const TSymbolUniqueId textureProj_SamplerExternalOES1_Float3 =
+ TSymbolUniqueId(830);
+ static constexpr const TSymbolUniqueId textureProj_SamplerExternalOES1_Float4 =
+ TSymbolUniqueId(831);
+ static constexpr const TSymbolUniqueId textureProj_SamplerExternal2DY2YEXT1_Float3 =
+ TSymbolUniqueId(832);
+ static constexpr const TSymbolUniqueId textureProj_SamplerExternal2DY2YEXT1_Float4 =
+ TSymbolUniqueId(833);
+ static constexpr const TSymbolUniqueId textureLod_Sampler2D1_Float2_Float1 =
+ TSymbolUniqueId(834);
+ static constexpr const TSymbolUniqueId textureLod_ISampler2D1_Float2_Float1 =
+ TSymbolUniqueId(835);
+ static constexpr const TSymbolUniqueId textureLod_USampler2D1_Float2_Float1 =
+ TSymbolUniqueId(836);
+ static constexpr const TSymbolUniqueId textureLod_Sampler3D1_Float3_Float1 =
+ TSymbolUniqueId(837);
+ static constexpr const TSymbolUniqueId textureLod_ISampler3D1_Float3_Float1 =
+ TSymbolUniqueId(838);
+ static constexpr const TSymbolUniqueId textureLod_USampler3D1_Float3_Float1 =
+ TSymbolUniqueId(839);
+ static constexpr const TSymbolUniqueId textureLod_SamplerCube1_Float3_Float1 =
+ TSymbolUniqueId(840);
+ static constexpr const TSymbolUniqueId textureLod_ISamplerCube1_Float3_Float1 =
+ TSymbolUniqueId(841);
+ static constexpr const TSymbolUniqueId textureLod_USamplerCube1_Float3_Float1 =
+ TSymbolUniqueId(842);
+ static constexpr const TSymbolUniqueId textureLod_Sampler2DArray1_Float3_Float1 =
+ TSymbolUniqueId(843);
+ static constexpr const TSymbolUniqueId textureLod_ISampler2DArray1_Float3_Float1 =
+ TSymbolUniqueId(844);
+ static constexpr const TSymbolUniqueId textureLod_USampler2DArray1_Float3_Float1 =
+ TSymbolUniqueId(845);
+ static constexpr const TSymbolUniqueId textureLod_Sampler2DShadow1_Float3_Float1 =
+ TSymbolUniqueId(846);
+ static constexpr const TSymbolUniqueId textureLod_Sampler1D1_Float1_Float1 =
+ TSymbolUniqueId(847);
+ static constexpr const TSymbolUniqueId textureLod_ISampler1D1_Float1_Float1 =
+ TSymbolUniqueId(848);
+ static constexpr const TSymbolUniqueId textureLod_USampler1D1_Float1_Float1 =
+ TSymbolUniqueId(849);
+ static constexpr const TSymbolUniqueId textureLod_Sampler1DShadow1_Float3_Float1 =
+ TSymbolUniqueId(850);
+ static constexpr const TSymbolUniqueId textureLod_Sampler1DArray1_Float2_Float1 =
+ TSymbolUniqueId(851);
+ static constexpr const TSymbolUniqueId textureLod_ISampler1DArray1_Float2_Float1 =
+ TSymbolUniqueId(852);
+ static constexpr const TSymbolUniqueId textureLod_USampler1DArray1_Float2_Float1 =
+ TSymbolUniqueId(853);
+ static constexpr const TSymbolUniqueId textureLod_Sampler1DArrayShadow1_Float3_Float1 =
+ TSymbolUniqueId(854);
+ static constexpr const TSymbolUniqueId textureLod_SamplerCubeArray1_Float4_Float1 =
+ TSymbolUniqueId(855);
+ static constexpr const TSymbolUniqueId textureLod_ISamplerCubeArray1_Float4_Float1 =
+ TSymbolUniqueId(856);
+ static constexpr const TSymbolUniqueId textureLod_USamplerCubeArray1_Float4_Float1 =
+ TSymbolUniqueId(857);
+ static constexpr const TSymbolUniqueId textureLodExt_SamplerCubeArray1_Float4_Float1 =
+ TSymbolUniqueId(858);
+ static constexpr const TSymbolUniqueId textureLodExt_ISamplerCubeArray1_Float4_Float1 =
+ TSymbolUniqueId(859);
+ static constexpr const TSymbolUniqueId textureLodExt_USamplerCubeArray1_Float4_Float1 =
+ TSymbolUniqueId(860);
+ static constexpr const TSymbolUniqueId textureSize_Sampler2D1_Int1 = TSymbolUniqueId(861);
+ static constexpr const TSymbolUniqueId textureSize_ISampler2D1_Int1 = TSymbolUniqueId(862);
+ static constexpr const TSymbolUniqueId textureSize_USampler2D1_Int1 = TSymbolUniqueId(863);
+ static constexpr const TSymbolUniqueId textureSize_Sampler3D1_Int1 = TSymbolUniqueId(864);
+ static constexpr const TSymbolUniqueId textureSize_ISampler3D1_Int1 = TSymbolUniqueId(865);
+ static constexpr const TSymbolUniqueId textureSize_USampler3D1_Int1 = TSymbolUniqueId(866);
+ static constexpr const TSymbolUniqueId textureSize_SamplerCube1_Int1 = TSymbolUniqueId(867);
+ static constexpr const TSymbolUniqueId textureSize_ISamplerCube1_Int1 = TSymbolUniqueId(868);
+ static constexpr const TSymbolUniqueId textureSize_USamplerCube1_Int1 = TSymbolUniqueId(869);
+ static constexpr const TSymbolUniqueId textureSize_Sampler2DArray1_Int1 = TSymbolUniqueId(870);
+ static constexpr const TSymbolUniqueId textureSize_ISampler2DArray1_Int1 = TSymbolUniqueId(871);
+ static constexpr const TSymbolUniqueId textureSize_USampler2DArray1_Int1 = TSymbolUniqueId(872);
+ static constexpr const TSymbolUniqueId textureSize_Sampler2DShadow1_Int1 = TSymbolUniqueId(873);
+ static constexpr const TSymbolUniqueId textureSize_SamplerCubeShadow1_Int1 =
+ TSymbolUniqueId(874);
+ static constexpr const TSymbolUniqueId textureSize_Sampler2DArrayShadow1_Int1 =
+ TSymbolUniqueId(875);
+ static constexpr const TSymbolUniqueId textureSize_Sampler1D1_Int1 = TSymbolUniqueId(876);
+ static constexpr const TSymbolUniqueId textureSize_ISampler1D1_Int1 = TSymbolUniqueId(877);
+ static constexpr const TSymbolUniqueId textureSize_USampler1D1_Int1 = TSymbolUniqueId(878);
+ static constexpr const TSymbolUniqueId textureSize_Sampler1DShadow1_Int1 = TSymbolUniqueId(879);
+ static constexpr const TSymbolUniqueId textureSize_SamplerCubeArray1_Int1 =
+ TSymbolUniqueId(880);
+ static constexpr const TSymbolUniqueId textureSize_ISamplerCubeArray1_Int1 =
+ TSymbolUniqueId(881);
+ static constexpr const TSymbolUniqueId textureSize_USamplerCubeArray1_Int1 =
+ TSymbolUniqueId(882);
+ static constexpr const TSymbolUniqueId textureSize_SamplerCubeArrayShadow1_Int1 =
+ TSymbolUniqueId(883);
+ static constexpr const TSymbolUniqueId textureSizeExt_SamplerCubeArray1_Int1 =
+ TSymbolUniqueId(884);
+ static constexpr const TSymbolUniqueId textureSizeExt_ISamplerCubeArray1_Int1 =
+ TSymbolUniqueId(885);
+ static constexpr const TSymbolUniqueId textureSizeExt_USamplerCubeArray1_Int1 =
+ TSymbolUniqueId(886);
+ static constexpr const TSymbolUniqueId textureSizeExt_SamplerCubeArrayShadow1_Int1 =
+ TSymbolUniqueId(887);
+ static constexpr const TSymbolUniqueId textureSize_Sampler2DRect1 = TSymbolUniqueId(888);
+ static constexpr const TSymbolUniqueId textureSize_ISampler2DRect1 = TSymbolUniqueId(889);
+ static constexpr const TSymbolUniqueId textureSize_USampler2DRect1 = TSymbolUniqueId(890);
+ static constexpr const TSymbolUniqueId textureSize_Sampler2DRectShadow1 = TSymbolUniqueId(891);
+ static constexpr const TSymbolUniqueId textureSize_Sampler1DArray1_Int1 = TSymbolUniqueId(892);
+ static constexpr const TSymbolUniqueId textureSize_ISampler1DArray1_Int1 = TSymbolUniqueId(893);
+ static constexpr const TSymbolUniqueId textureSize_USampler1DArray1_Int1 = TSymbolUniqueId(894);
+ static constexpr const TSymbolUniqueId textureSize_Sampler1DArrayShadow1_Int1 =
+ TSymbolUniqueId(895);
+ static constexpr const TSymbolUniqueId textureSize_SamplerBuffer1 = TSymbolUniqueId(896);
+ static constexpr const TSymbolUniqueId pt00j = TSymbolUniqueId(897);
+ static constexpr const TSymbolUniqueId textureSize_ISamplerBuffer1 = TSymbolUniqueId(898);
+ static constexpr const TSymbolUniqueId pt00r = TSymbolUniqueId(899);
+ static constexpr const TSymbolUniqueId textureSize_USamplerBuffer1 = TSymbolUniqueId(900);
+ static constexpr const TSymbolUniqueId pt00w = TSymbolUniqueId(901);
+ static constexpr const TSymbolUniqueId textureSizeExt_SamplerBuffer1 = TSymbolUniqueId(902);
+ static constexpr const TSymbolUniqueId textureSizeExt_ISamplerBuffer1 = TSymbolUniqueId(903);
+ static constexpr const TSymbolUniqueId textureSizeExt_USamplerBuffer1 = TSymbolUniqueId(904);
+ static constexpr const TSymbolUniqueId textureSize_Sampler2DMS1 = TSymbolUniqueId(905);
+ static constexpr const TSymbolUniqueId pt00P = TSymbolUniqueId(906);
+ static constexpr const TSymbolUniqueId textureSize_ISampler2DMS1 = TSymbolUniqueId(907);
+ static constexpr const TSymbolUniqueId pt00V = TSymbolUniqueId(908);
+ static constexpr const TSymbolUniqueId textureSize_USampler2DMS1 = TSymbolUniqueId(909);
+ static constexpr const TSymbolUniqueId pt00b = TSymbolUniqueId(910);
+ static constexpr const TSymbolUniqueId textureSizeExt_Sampler2DMS1 = TSymbolUniqueId(911);
+ static constexpr const TSymbolUniqueId textureSizeExt_ISampler2DMS1 = TSymbolUniqueId(912);
+ static constexpr const TSymbolUniqueId textureSizeExt_USampler2DMS1 = TSymbolUniqueId(913);
+ static constexpr const TSymbolUniqueId textureSize_Sampler2DMSArray1 = TSymbolUniqueId(914);
+ static constexpr const TSymbolUniqueId pt00Q = TSymbolUniqueId(915);
+ static constexpr const TSymbolUniqueId textureSize_ISampler2DMSArray1 = TSymbolUniqueId(916);
+ static constexpr const TSymbolUniqueId pt00W = TSymbolUniqueId(917);
+ static constexpr const TSymbolUniqueId textureSize_USampler2DMSArray1 = TSymbolUniqueId(918);
+ static constexpr const TSymbolUniqueId pt00c = TSymbolUniqueId(919);
+ static constexpr const TSymbolUniqueId textureSizeExt_Sampler2DMSArray1 = TSymbolUniqueId(920);
+ static constexpr const TSymbolUniqueId textureSizeExt_ISampler2DMSArray1 = TSymbolUniqueId(921);
+ static constexpr const TSymbolUniqueId textureSizeExt_USampler2DMSArray1 = TSymbolUniqueId(922);
+ static constexpr const TSymbolUniqueId textureSize_SamplerExternalOES1_Int1 =
+ TSymbolUniqueId(923);
+ static constexpr const TSymbolUniqueId textureSize_SamplerExternal2DY2YEXT1_Int1 =
+ TSymbolUniqueId(924);
+ static constexpr const TSymbolUniqueId textureProjLod_Sampler2D1_Float3_Float1 =
+ TSymbolUniqueId(925);
+ static constexpr const TSymbolUniqueId textureProjLod_ISampler2D1_Float3_Float1 =
+ TSymbolUniqueId(926);
+ static constexpr const TSymbolUniqueId textureProjLod_USampler2D1_Float3_Float1 =
+ TSymbolUniqueId(927);
+ static constexpr const TSymbolUniqueId textureProjLod_Sampler2D1_Float4_Float1 =
+ TSymbolUniqueId(928);
+ static constexpr const TSymbolUniqueId textureProjLod_ISampler2D1_Float4_Float1 =
+ TSymbolUniqueId(929);
+ static constexpr const TSymbolUniqueId textureProjLod_USampler2D1_Float4_Float1 =
+ TSymbolUniqueId(930);
+ static constexpr const TSymbolUniqueId textureProjLod_Sampler3D1_Float4_Float1 =
+ TSymbolUniqueId(931);
+ static constexpr const TSymbolUniqueId textureProjLod_ISampler3D1_Float4_Float1 =
+ TSymbolUniqueId(932);
+ static constexpr const TSymbolUniqueId textureProjLod_USampler3D1_Float4_Float1 =
+ TSymbolUniqueId(933);
+ static constexpr const TSymbolUniqueId textureProjLod_Sampler2DShadow1_Float4_Float1 =
+ TSymbolUniqueId(934);
+ static constexpr const TSymbolUniqueId textureProjLod_Sampler1D1_Float2_Float1 =
+ TSymbolUniqueId(935);
+ static constexpr const TSymbolUniqueId textureProjLod_ISampler1D1_Float2_Float1 =
+ TSymbolUniqueId(936);
+ static constexpr const TSymbolUniqueId textureProjLod_USampler1D1_Float2_Float1 =
+ TSymbolUniqueId(937);
+ static constexpr const TSymbolUniqueId textureProjLod_Sampler1D1_Float4_Float1 =
+ TSymbolUniqueId(938);
+ static constexpr const TSymbolUniqueId textureProjLod_ISampler1D1_Float4_Float1 =
+ TSymbolUniqueId(939);
+ static constexpr const TSymbolUniqueId textureProjLod_USampler1D1_Float4_Float1 =
+ TSymbolUniqueId(940);
+ static constexpr const TSymbolUniqueId textureProjLod_Sampler1DShadow1_Float4_Float1 =
+ TSymbolUniqueId(941);
+ static constexpr const TSymbolUniqueId texelFetch_Sampler2D1_Int2_Int1 = TSymbolUniqueId(942);
+ static constexpr const TSymbolUniqueId texelFetch_ISampler2D1_Int2_Int1 = TSymbolUniqueId(943);
+ static constexpr const TSymbolUniqueId texelFetch_USampler2D1_Int2_Int1 = TSymbolUniqueId(944);
+ static constexpr const TSymbolUniqueId texelFetch_Sampler3D1_Int3_Int1 = TSymbolUniqueId(945);
+ static constexpr const TSymbolUniqueId texelFetch_ISampler3D1_Int3_Int1 = TSymbolUniqueId(946);
+ static constexpr const TSymbolUniqueId texelFetch_USampler3D1_Int3_Int1 = TSymbolUniqueId(947);
+ static constexpr const TSymbolUniqueId texelFetch_Sampler2DArray1_Int3_Int1 =
+ TSymbolUniqueId(948);
+ static constexpr const TSymbolUniqueId texelFetch_ISampler2DArray1_Int3_Int1 =
+ TSymbolUniqueId(949);
+ static constexpr const TSymbolUniqueId texelFetch_USampler2DArray1_Int3_Int1 =
+ TSymbolUniqueId(950);
+ static constexpr const TSymbolUniqueId texelFetch_Sampler1D1_Int1_Int1 = TSymbolUniqueId(951);
+ static constexpr const TSymbolUniqueId texelFetch_ISampler1D1_Int1_Int1 = TSymbolUniqueId(952);
+ static constexpr const TSymbolUniqueId texelFetch_USampler1D1_Int1_Int1 = TSymbolUniqueId(953);
+ static constexpr const TSymbolUniqueId texelFetch_Sampler2DRect1_Int2 = TSymbolUniqueId(954);
+ static constexpr const TSymbolUniqueId texelFetch_ISampler2DRect1_Int2 = TSymbolUniqueId(955);
+ static constexpr const TSymbolUniqueId texelFetch_USampler2DRect1_Int2 = TSymbolUniqueId(956);
+ static constexpr const TSymbolUniqueId texelFetch_Sampler1DArray1_Int2_Int1 =
+ TSymbolUniqueId(957);
+ static constexpr const TSymbolUniqueId texelFetch_ISampler1DArray1_Int2_Int1 =
+ TSymbolUniqueId(958);
+ static constexpr const TSymbolUniqueId texelFetch_USampler1DArray1_Int2_Int1 =
+ TSymbolUniqueId(959);
+ static constexpr const TSymbolUniqueId texelFetch_SamplerBuffer1_Int1 = TSymbolUniqueId(960);
+ static constexpr const TSymbolUniqueId texelFetch_ISamplerBuffer1_Int1 = TSymbolUniqueId(961);
+ static constexpr const TSymbolUniqueId texelFetch_USamplerBuffer1_Int1 = TSymbolUniqueId(962);
+ static constexpr const TSymbolUniqueId texelFetchExt_SamplerBuffer1_Int1 = TSymbolUniqueId(963);
+ static constexpr const TSymbolUniqueId texelFetchExt_ISamplerBuffer1_Int1 =
+ TSymbolUniqueId(964);
+ static constexpr const TSymbolUniqueId texelFetchExt_USamplerBuffer1_Int1 =
+ TSymbolUniqueId(965);
+ static constexpr const TSymbolUniqueId texelFetch_Sampler2DMS1_Int2_Int1 = TSymbolUniqueId(966);
+ static constexpr const TSymbolUniqueId texelFetch_ISampler2DMS1_Int2_Int1 =
+ TSymbolUniqueId(967);
+ static constexpr const TSymbolUniqueId texelFetch_USampler2DMS1_Int2_Int1 =
+ TSymbolUniqueId(968);
+ static constexpr const TSymbolUniqueId texelFetchExt_Sampler2DMS1_Int2_Int1 =
+ TSymbolUniqueId(969);
+ static constexpr const TSymbolUniqueId texelFetchExt_ISampler2DMS1_Int2_Int1 =
+ TSymbolUniqueId(970);
+ static constexpr const TSymbolUniqueId texelFetchExt_USampler2DMS1_Int2_Int1 =
+ TSymbolUniqueId(971);
+ static constexpr const TSymbolUniqueId texelFetch_Sampler2DMSArray1_Int3_Int1 =
+ TSymbolUniqueId(972);
+ static constexpr const TSymbolUniqueId texelFetch_ISampler2DMSArray1_Int3_Int1 =
+ TSymbolUniqueId(973);
+ static constexpr const TSymbolUniqueId texelFetch_USampler2DMSArray1_Int3_Int1 =
+ TSymbolUniqueId(974);
+ static constexpr const TSymbolUniqueId texelFetchExt_Sampler2DMSArray1_Int3_Int1 =
+ TSymbolUniqueId(975);
+ static constexpr const TSymbolUniqueId texelFetchExt_ISampler2DMSArray1_Int3_Int1 =
+ TSymbolUniqueId(976);
+ static constexpr const TSymbolUniqueId texelFetchExt_USampler2DMSArray1_Int3_Int1 =
+ TSymbolUniqueId(977);
+ static constexpr const TSymbolUniqueId texelFetch_SamplerExternalOES1_Int2_Int1 =
+ TSymbolUniqueId(978);
+ static constexpr const TSymbolUniqueId texelFetch_SamplerExternal2DY2YEXT1_Int2_Int1 =
+ TSymbolUniqueId(979);
+ static constexpr const TSymbolUniqueId textureGrad_Sampler2D1_Float2_Float2_Float2 =
+ TSymbolUniqueId(980);
+ static constexpr const TSymbolUniqueId textureGrad_ISampler2D1_Float2_Float2_Float2 =
+ TSymbolUniqueId(981);
+ static constexpr const TSymbolUniqueId textureGrad_USampler2D1_Float2_Float2_Float2 =
+ TSymbolUniqueId(982);
+ static constexpr const TSymbolUniqueId textureGrad_Sampler3D1_Float3_Float3_Float3 =
+ TSymbolUniqueId(983);
+ static constexpr const TSymbolUniqueId textureGrad_ISampler3D1_Float3_Float3_Float3 =
+ TSymbolUniqueId(984);
+ static constexpr const TSymbolUniqueId textureGrad_USampler3D1_Float3_Float3_Float3 =
+ TSymbolUniqueId(985);
+ static constexpr const TSymbolUniqueId textureGrad_SamplerCube1_Float3_Float3_Float3 =
+ TSymbolUniqueId(986);
+ static constexpr const TSymbolUniqueId textureGrad_ISamplerCube1_Float3_Float3_Float3 =
+ TSymbolUniqueId(987);
+ static constexpr const TSymbolUniqueId textureGrad_USamplerCube1_Float3_Float3_Float3 =
+ TSymbolUniqueId(988);
+ static constexpr const TSymbolUniqueId textureGrad_Sampler2D1_Float1_Float1_Float1 =
+ TSymbolUniqueId(989);
+ static constexpr const TSymbolUniqueId textureGrad_ISampler2D1_Float1_Float1_Float1 =
+ TSymbolUniqueId(990);
+ static constexpr const TSymbolUniqueId textureGrad_USampler2D1_Float1_Float1_Float1 =
+ TSymbolUniqueId(991);
+ static constexpr const TSymbolUniqueId textureGrad_Sampler2DRect1_Float2_Float2_Float2 =
+ TSymbolUniqueId(992);
+ static constexpr const TSymbolUniqueId textureGrad_ISampler2DRect1_Float2_Float2_Float2 =
+ TSymbolUniqueId(993);
+ static constexpr const TSymbolUniqueId textureGrad_USampler2DRect1_Float2_Float2_Float2 =
+ TSymbolUniqueId(994);
+ static constexpr const TSymbolUniqueId textureGrad_Sampler2DRectShadow1_Float3_Float2_Float2 =
+ TSymbolUniqueId(995);
+ static constexpr const TSymbolUniqueId textureGrad_Sampler2DShadow1_Float3_Float2_Float2 =
+ TSymbolUniqueId(996);
+ static constexpr const TSymbolUniqueId textureGrad_SamplerCubeShadow1_Float4_Float3_Float3 =
+ TSymbolUniqueId(997);
+ static constexpr const TSymbolUniqueId textureGrad_Sampler2DArray1_Float3_Float2_Float2 =
+ TSymbolUniqueId(998);
+ static constexpr const TSymbolUniqueId textureGrad_ISampler2DArray1_Float3_Float2_Float2 =
+ TSymbolUniqueId(999);
+ static constexpr const TSymbolUniqueId textureGrad_USampler2DArray1_Float3_Float2_Float2 =
+ TSymbolUniqueId(1000);
+ static constexpr const TSymbolUniqueId textureGrad_Sampler2DArrayShadow1_Float4_Float2_Float2 =
+ TSymbolUniqueId(1001);
+ static constexpr const TSymbolUniqueId textureGrad_Sampler1DShadow1_Float3_Float1_Float1 =
+ TSymbolUniqueId(1002);
+ static constexpr const TSymbolUniqueId textureGrad_Sampler1DArray1_Float2_Float1_Float1 =
+ TSymbolUniqueId(1003);
+ static constexpr const TSymbolUniqueId textureGrad_ISampler1DArray1_Float2_Float1_Float1 =
+ TSymbolUniqueId(1004);
+ static constexpr const TSymbolUniqueId textureGrad_USampler1DArray1_Float2_Float1_Float1 =
+ TSymbolUniqueId(1005);
+ static constexpr const TSymbolUniqueId textureGrad_Sampler1DArrayShadow1_Float3_Float1_Float1 =
+ TSymbolUniqueId(1006);
+ static constexpr const TSymbolUniqueId textureGrad_SamplerCubeArray1_Float4_Float3_Float3 =
+ TSymbolUniqueId(1007);
+ static constexpr const TSymbolUniqueId textureGrad_ISamplerCubeArray1_Float4_Float3_Float3 =
+ TSymbolUniqueId(1008);
+ static constexpr const TSymbolUniqueId textureGrad_USamplerCubeArray1_Float4_Float3_Float3 =
+ TSymbolUniqueId(1009);
+ static constexpr const TSymbolUniqueId textureGradExt_SamplerCubeArray1_Float4_Float3_Float3 =
+ TSymbolUniqueId(1010);
+ static constexpr const TSymbolUniqueId textureGradExt_ISamplerCubeArray1_Float4_Float3_Float3 =
+ TSymbolUniqueId(1011);
+ static constexpr const TSymbolUniqueId textureGradExt_USamplerCubeArray1_Float4_Float3_Float3 =
+ TSymbolUniqueId(1012);
+ static constexpr const TSymbolUniqueId textureProjGrad_Sampler2D1_Float3_Float2_Float2 =
+ TSymbolUniqueId(1013);
+ static constexpr const TSymbolUniqueId textureProjGrad_ISampler2D1_Float3_Float2_Float2 =
+ TSymbolUniqueId(1014);
+ static constexpr const TSymbolUniqueId textureProjGrad_USampler2D1_Float3_Float2_Float2 =
+ TSymbolUniqueId(1015);
+ static constexpr const TSymbolUniqueId textureProjGrad_Sampler2D1_Float4_Float2_Float2 =
+ TSymbolUniqueId(1016);
+ static constexpr const TSymbolUniqueId textureProjGrad_ISampler2D1_Float4_Float2_Float2 =
+ TSymbolUniqueId(1017);
+ static constexpr const TSymbolUniqueId textureProjGrad_USampler2D1_Float4_Float2_Float2 =
+ TSymbolUniqueId(1018);
+ static constexpr const TSymbolUniqueId textureProjGrad_Sampler3D1_Float4_Float3_Float3 =
+ TSymbolUniqueId(1019);
+ static constexpr const TSymbolUniqueId textureProjGrad_ISampler3D1_Float4_Float3_Float3 =
+ TSymbolUniqueId(1020);
+ static constexpr const TSymbolUniqueId textureProjGrad_USampler3D1_Float4_Float3_Float3 =
+ TSymbolUniqueId(1021);
+ static constexpr const TSymbolUniqueId textureProjGrad_Sampler2DShadow1_Float4_Float2_Float2 =
+ TSymbolUniqueId(1022);
+ static constexpr const TSymbolUniqueId textureProjGrad_Sampler1D1_Float2_Float1_Float1 =
+ TSymbolUniqueId(1023);
+ static constexpr const TSymbolUniqueId textureProjGrad_ISampler1D1_Float2_Float1_Float1 =
+ TSymbolUniqueId(1024);
+ static constexpr const TSymbolUniqueId textureProjGrad_USampler1D1_Float2_Float1_Float1 =
+ TSymbolUniqueId(1025);
+ static constexpr const TSymbolUniqueId textureProjGrad_Sampler1D1_Float4_Float1_Float1 =
+ TSymbolUniqueId(1026);
+ static constexpr const TSymbolUniqueId textureProjGrad_ISampler1D1_Float4_Float1_Float1 =
+ TSymbolUniqueId(1027);
+ static constexpr const TSymbolUniqueId textureProjGrad_USampler1D1_Float4_Float1_Float1 =
+ TSymbolUniqueId(1028);
+ static constexpr const TSymbolUniqueId textureProjGrad_Sampler1DShadow1_Float4_Float1_Float1 =
+ TSymbolUniqueId(1029);
+ static constexpr const TSymbolUniqueId textureProjGrad_Sampler2DRect1_Float3_Float2_Float2 =
+ TSymbolUniqueId(1030);
+ static constexpr const TSymbolUniqueId textureProjGrad_ISampler2DRect1_Float3_Float2_Float2 =
+ TSymbolUniqueId(1031);
+ static constexpr const TSymbolUniqueId textureProjGrad_USampler2DRect1_Float3_Float2_Float2 =
+ TSymbolUniqueId(1032);
+ static constexpr const TSymbolUniqueId textureProjGrad_Sampler2DRect1_Float4_Float2_Float2 =
+ TSymbolUniqueId(1033);
+ static constexpr const TSymbolUniqueId textureProjGrad_ISampler2DRect1_Float4_Float2_Float2 =
+ TSymbolUniqueId(1034);
+ static constexpr const TSymbolUniqueId textureProjGrad_USampler2DRect1_Float4_Float2_Float2 =
+ TSymbolUniqueId(1035);
+ static constexpr const TSymbolUniqueId
+ textureProjGrad_Sampler2DRectShadow1_Float4_Float2_Float2 = TSymbolUniqueId(1036);
+ static constexpr const TSymbolUniqueId textureQueryLevels_Sampler1D1 = TSymbolUniqueId(1037);
+ static constexpr const TSymbolUniqueId textureQueryLevels_ISampler1D1 = TSymbolUniqueId(1038);
+ static constexpr const TSymbolUniqueId textureQueryLevels_USampler1D1 = TSymbolUniqueId(1039);
+ static constexpr const TSymbolUniqueId textureQueryLevels_Sampler2D1 = TSymbolUniqueId(1040);
+ static constexpr const TSymbolUniqueId textureQueryLevels_ISampler2D1 = TSymbolUniqueId(1041);
+ static constexpr const TSymbolUniqueId textureQueryLevels_USampler2D1 = TSymbolUniqueId(1042);
+ static constexpr const TSymbolUniqueId textureQueryLevels_Sampler3D1 = TSymbolUniqueId(1043);
+ static constexpr const TSymbolUniqueId textureQueryLevels_ISampler3D1 = TSymbolUniqueId(1044);
+ static constexpr const TSymbolUniqueId textureQueryLevels_USampler3D1 = TSymbolUniqueId(1045);
+ static constexpr const TSymbolUniqueId textureQueryLevels_SamplerCube1 = TSymbolUniqueId(1046);
+ static constexpr const TSymbolUniqueId textureQueryLevels_ISamplerCube1 = TSymbolUniqueId(1047);
+ static constexpr const TSymbolUniqueId textureQueryLevels_USamplerCube1 = TSymbolUniqueId(1048);
+ static constexpr const TSymbolUniqueId textureQueryLevels_Sampler1DArray1 =
+ TSymbolUniqueId(1049);
+ static constexpr const TSymbolUniqueId textureQueryLevels_ISampler1DArray1 =
+ TSymbolUniqueId(1050);
+ static constexpr const TSymbolUniqueId textureQueryLevels_USampler1DArray1 =
+ TSymbolUniqueId(1051);
+ static constexpr const TSymbolUniqueId textureQueryLevels_Sampler2DArray1 =
+ TSymbolUniqueId(1052);
+ static constexpr const TSymbolUniqueId textureQueryLevels_ISampler2DArray1 =
+ TSymbolUniqueId(1053);
+ static constexpr const TSymbolUniqueId textureQueryLevels_USampler2DArray1 =
+ TSymbolUniqueId(1054);
+ static constexpr const TSymbolUniqueId textureQueryLevels_SamplerCubeArray1 =
+ TSymbolUniqueId(1055);
+ static constexpr const TSymbolUniqueId textureQueryLevels_ISamplerCubeArray1 =
+ TSymbolUniqueId(1056);
+ static constexpr const TSymbolUniqueId textureQueryLevels_USamplerCubeArray1 =
+ TSymbolUniqueId(1057);
+ static constexpr const TSymbolUniqueId textureQueryLevels_Sampler1DShadow1 =
+ TSymbolUniqueId(1058);
+ static constexpr const TSymbolUniqueId textureQueryLevels_Sampler2DShadow1 =
+ TSymbolUniqueId(1059);
+ static constexpr const TSymbolUniqueId textureQueryLevels_SamplerCubeShadow1 =
+ TSymbolUniqueId(1060);
+ static constexpr const TSymbolUniqueId textureQueryLevels_Sampler1DArrayShadow1 =
+ TSymbolUniqueId(1061);
+ static constexpr const TSymbolUniqueId textureQueryLevels_Sampler2DArrayShadow1 =
+ TSymbolUniqueId(1062);
+ static constexpr const TSymbolUniqueId textureQueryLevels_SamplerCubeArrayShadow1 =
+ TSymbolUniqueId(1063);
+ static constexpr const TSymbolUniqueId textureSamples_Sampler2DMS1 = TSymbolUniqueId(1064);
+ static constexpr const TSymbolUniqueId textureSamples_ISampler2DMS1 = TSymbolUniqueId(1065);
+ static constexpr const TSymbolUniqueId textureSamples_USampler2DMS1 = TSymbolUniqueId(1066);
+ static constexpr const TSymbolUniqueId textureSamples_Sampler2DMSArray1 = TSymbolUniqueId(1067);
+ static constexpr const TSymbolUniqueId textureSamples_ISampler2DMSArray1 =
+ TSymbolUniqueId(1068);
+ static constexpr const TSymbolUniqueId textureSamples_USampler2DMSArray1 =
+ TSymbolUniqueId(1069);
+ static constexpr const TSymbolUniqueId texture_Sampler2D1_Float2_Float1 = TSymbolUniqueId(1070);
+ static constexpr const TSymbolUniqueId texture_ISampler2D1_Float2_Float1 =
+ TSymbolUniqueId(1071);
+ static constexpr const TSymbolUniqueId texture_USampler2D1_Float2_Float1 =
+ TSymbolUniqueId(1072);
+ static constexpr const TSymbolUniqueId texture_Sampler3D1_Float3_Float1 = TSymbolUniqueId(1073);
+ static constexpr const TSymbolUniqueId texture_ISampler3D1_Float3_Float1 =
+ TSymbolUniqueId(1074);
+ static constexpr const TSymbolUniqueId texture_USampler3D1_Float3_Float1 =
+ TSymbolUniqueId(1075);
+ static constexpr const TSymbolUniqueId texture_SamplerCube1_Float3_Float1 =
+ TSymbolUniqueId(1076);
+ static constexpr const TSymbolUniqueId texture_ISamplerCube1_Float3_Float1 =
+ TSymbolUniqueId(1077);
+ static constexpr const TSymbolUniqueId texture_USamplerCube1_Float3_Float1 =
+ TSymbolUniqueId(1078);
+ static constexpr const TSymbolUniqueId texture_Sampler2DArray1_Float3_Float1 =
+ TSymbolUniqueId(1079);
+ static constexpr const TSymbolUniqueId texture_ISampler2DArray1_Float3_Float1 =
+ TSymbolUniqueId(1080);
+ static constexpr const TSymbolUniqueId texture_USampler2DArray1_Float3_Float1 =
+ TSymbolUniqueId(1081);
+ static constexpr const TSymbolUniqueId textureProj_Sampler2D1_Float3_Float1 =
+ TSymbolUniqueId(1082);
+ static constexpr const TSymbolUniqueId textureProj_ISampler2D1_Float3_Float1 =
+ TSymbolUniqueId(1083);
+ static constexpr const TSymbolUniqueId textureProj_USampler2D1_Float3_Float1 =
+ TSymbolUniqueId(1084);
+ static constexpr const TSymbolUniqueId textureProj_Sampler2D1_Float4_Float1 =
+ TSymbolUniqueId(1085);
+ static constexpr const TSymbolUniqueId textureProj_ISampler2D1_Float4_Float1 =
+ TSymbolUniqueId(1086);
+ static constexpr const TSymbolUniqueId textureProj_USampler2D1_Float4_Float1 =
+ TSymbolUniqueId(1087);
+ static constexpr const TSymbolUniqueId textureProj_Sampler3D1_Float4_Float1 =
+ TSymbolUniqueId(1088);
+ static constexpr const TSymbolUniqueId textureProj_ISampler3D1_Float4_Float1 =
+ TSymbolUniqueId(1089);
+ static constexpr const TSymbolUniqueId textureProj_USampler3D1_Float4_Float1 =
+ TSymbolUniqueId(1090);
+ static constexpr const TSymbolUniqueId texture_Sampler2DShadow1_Float3_Float1 =
+ TSymbolUniqueId(1091);
+ static constexpr const TSymbolUniqueId texture_SamplerCubeShadow1_Float4_Float1 =
+ TSymbolUniqueId(1092);
+ static constexpr const TSymbolUniqueId textureProj_Sampler2DShadow1_Float4_Float1 =
+ TSymbolUniqueId(1093);
+ static constexpr const TSymbolUniqueId texture_Sampler1D1_Float1_Float1 = TSymbolUniqueId(1094);
+ static constexpr const TSymbolUniqueId texture_ISampler1D1_Float1_Float1 =
+ TSymbolUniqueId(1095);
+ static constexpr const TSymbolUniqueId texture_USampler1D1_Float1_Float1 =
+ TSymbolUniqueId(1096);
+ static constexpr const TSymbolUniqueId texture_Sampler1DShadow1_Float3_Float1 =
+ TSymbolUniqueId(1097);
+ static constexpr const TSymbolUniqueId texture_Sampler1DArray1_Float3_Float1 =
+ TSymbolUniqueId(1098);
+ static constexpr const TSymbolUniqueId texture_ISampler1DArray1_Float3_Float1 =
+ TSymbolUniqueId(1099);
+ static constexpr const TSymbolUniqueId texture_USampler1DArray1_Float3_Float1 =
+ TSymbolUniqueId(1100);
+ static constexpr const TSymbolUniqueId texture_Sampler1DArrayShadow1_Float3_Float1 =
+ TSymbolUniqueId(1101);
+ static constexpr const TSymbolUniqueId texture_Sampler2DArrayShadow1_Float4_Float1 =
+ TSymbolUniqueId(1102);
+ static constexpr const TSymbolUniqueId textureProj_Sampler1D1_Float2_Float1 =
+ TSymbolUniqueId(1103);
+ static constexpr const TSymbolUniqueId textureProj_ISampler1D1_Float2_Float1 =
+ TSymbolUniqueId(1104);
+ static constexpr const TSymbolUniqueId textureProj_USampler1D1_Float2_Float1 =
+ TSymbolUniqueId(1105);
+ static constexpr const TSymbolUniqueId textureProj_Sampler1D1_Float4_Float1 =
+ TSymbolUniqueId(1106);
+ static constexpr const TSymbolUniqueId textureProj_ISampler1D1_Float4_Float1 =
+ TSymbolUniqueId(1107);
+ static constexpr const TSymbolUniqueId textureProj_USampler1D1_Float4_Float1 =
+ TSymbolUniqueId(1108);
+ static constexpr const TSymbolUniqueId textureProj_Sampler1DShadow1_Float4_Float1 =
+ TSymbolUniqueId(1109);
+ static constexpr const TSymbolUniqueId texture_SamplerCubeArray1_Float4_Float1 =
+ TSymbolUniqueId(1110);
+ static constexpr const TSymbolUniqueId texture_ISamplerCubeArray1_Float4_Float1 =
+ TSymbolUniqueId(1111);
+ static constexpr const TSymbolUniqueId texture_USamplerCubeArray1_Float4_Float1 =
+ TSymbolUniqueId(1112);
+ static constexpr const TSymbolUniqueId textureExt_SamplerCubeArray1_Float4_Float1 =
+ TSymbolUniqueId(1113);
+ static constexpr const TSymbolUniqueId textureExt_ISamplerCubeArray1_Float4_Float1 =
+ TSymbolUniqueId(1114);
+ static constexpr const TSymbolUniqueId textureExt_USamplerCubeArray1_Float4_Float1 =
+ TSymbolUniqueId(1115);
+ static constexpr const TSymbolUniqueId texture_SamplerExternalOES1_Float2_Float1 =
+ TSymbolUniqueId(1116);
+ static constexpr const TSymbolUniqueId textureProj_SamplerExternalOES1_Float3_Float1 =
+ TSymbolUniqueId(1117);
+ static constexpr const TSymbolUniqueId textureProj_SamplerExternalOES1_Float4_Float1 =
+ TSymbolUniqueId(1118);
+ static constexpr const TSymbolUniqueId texture_SamplerExternal2DY2YEXT1_Float2_Float1 =
+ TSymbolUniqueId(1119);
+ static constexpr const TSymbolUniqueId textureProj_SamplerExternal2DY2YEXT1_Float3_Float1 =
+ TSymbolUniqueId(1120);
+ static constexpr const TSymbolUniqueId textureProj_SamplerExternal2DY2YEXT1_Float4_Float1 =
+ TSymbolUniqueId(1121);
+ static constexpr const TSymbolUniqueId textureQueryLod_Sampler1D1_Float1 =
+ TSymbolUniqueId(1122);
+ static constexpr const TSymbolUniqueId textureQueryLod_ISampler1D1_Float1 =
+ TSymbolUniqueId(1123);
+ static constexpr const TSymbolUniqueId textureQueryLod_USampler1D1_Float1 =
+ TSymbolUniqueId(1124);
+ static constexpr const TSymbolUniqueId textureQueryLod_Sampler2D1_Float2 =
+ TSymbolUniqueId(1125);
+ static constexpr const TSymbolUniqueId textureQueryLod_ISampler2D1_Float2 =
+ TSymbolUniqueId(1126);
+ static constexpr const TSymbolUniqueId textureQueryLod_USampler2D1_Float2 =
+ TSymbolUniqueId(1127);
+ static constexpr const TSymbolUniqueId textureQueryLod_Sampler3D1_Float3 =
+ TSymbolUniqueId(1128);
+ static constexpr const TSymbolUniqueId textureQueryLod_ISampler3D1_Float3 =
+ TSymbolUniqueId(1129);
+ static constexpr const TSymbolUniqueId textureQueryLod_USampler3D1_Float3 =
+ TSymbolUniqueId(1130);
+ static constexpr const TSymbolUniqueId textureQueryLod_SamplerCube1_Float3 =
+ TSymbolUniqueId(1131);
+ static constexpr const TSymbolUniqueId textureQueryLod_ISamplerCube1_Float3 =
+ TSymbolUniqueId(1132);
+ static constexpr const TSymbolUniqueId textureQueryLod_USamplerCube1_Float3 =
+ TSymbolUniqueId(1133);
+ static constexpr const TSymbolUniqueId textureQueryLod_Sampler1DArray1_Float1 =
+ TSymbolUniqueId(1134);
+ static constexpr const TSymbolUniqueId textureQueryLod_ISampler1DArray1_Float1 =
+ TSymbolUniqueId(1135);
+ static constexpr const TSymbolUniqueId textureQueryLod_USampler1DArray1_Float1 =
+ TSymbolUniqueId(1136);
+ static constexpr const TSymbolUniqueId textureQueryLod_Sampler2DArray1_Float2 =
+ TSymbolUniqueId(1137);
+ static constexpr const TSymbolUniqueId textureQueryLod_ISampler2DArray1_Float2 =
+ TSymbolUniqueId(1138);
+ static constexpr const TSymbolUniqueId textureQueryLod_USampler2DArray1_Float2 =
+ TSymbolUniqueId(1139);
+ static constexpr const TSymbolUniqueId textureQueryLod_SamplerCubeArray1_Float3 =
+ TSymbolUniqueId(1140);
+ static constexpr const TSymbolUniqueId textureQueryLod_ISamplerCubeArray1_Float3 =
+ TSymbolUniqueId(1141);
+ static constexpr const TSymbolUniqueId textureQueryLod_USamplerCubeArray1_Float3 =
+ TSymbolUniqueId(1142);
+ static constexpr const TSymbolUniqueId textureQueryLod_Sampler1DShadow1_Float1 =
+ TSymbolUniqueId(1143);
+ static constexpr const TSymbolUniqueId textureQueryLod_Sampler2DShadow1_Float2 =
+ TSymbolUniqueId(1144);
+ static constexpr const TSymbolUniqueId textureQueryLod_SamplerCubeShadow1_Float3 =
+ TSymbolUniqueId(1145);
+ static constexpr const TSymbolUniqueId textureQueryLod_Sampler1DArrayShadow1_Float1 =
+ TSymbolUniqueId(1146);
+ static constexpr const TSymbolUniqueId textureQueryLod_Sampler2DArrayShadow1_Float2 =
+ TSymbolUniqueId(1147);
+ static constexpr const TSymbolUniqueId textureQueryLod_SamplerCubeArrayShadow1_Float3 =
+ TSymbolUniqueId(1148);
+ static constexpr const TSymbolUniqueId textureOffset_Sampler2D1_Float2_Int2 =
+ TSymbolUniqueId(1149);
+ static constexpr const TSymbolUniqueId textureOffset_ISampler2D1_Float2_Int2 =
+ TSymbolUniqueId(1150);
+ static constexpr const TSymbolUniqueId textureOffset_USampler2D1_Float2_Int2 =
+ TSymbolUniqueId(1151);
+ static constexpr const TSymbolUniqueId textureOffset_Sampler3D1_Float3_Int3 =
+ TSymbolUniqueId(1152);
+ static constexpr const TSymbolUniqueId textureOffset_ISampler3D1_Float3_Int3 =
+ TSymbolUniqueId(1153);
+ static constexpr const TSymbolUniqueId textureOffset_USampler3D1_Float3_Int3 =
+ TSymbolUniqueId(1154);
+ static constexpr const TSymbolUniqueId textureOffset_Sampler2DShadow1_Float3_Int2 =
+ TSymbolUniqueId(1155);
+ static constexpr const TSymbolUniqueId textureOffset_Sampler2DArray1_Float3_Int2 =
+ TSymbolUniqueId(1156);
+ static constexpr const TSymbolUniqueId textureOffset_ISampler2DArray1_Float3_Int2 =
+ TSymbolUniqueId(1157);
+ static constexpr const TSymbolUniqueId textureOffset_USampler2DArray1_Float3_Int2 =
+ TSymbolUniqueId(1158);
+ static constexpr const TSymbolUniqueId textureOffset_Sampler1D1_Float1_Int1 =
+ TSymbolUniqueId(1159);
+ static constexpr const TSymbolUniqueId textureOffset_ISampler1D1_Float1_Int1 =
+ TSymbolUniqueId(1160);
+ static constexpr const TSymbolUniqueId textureOffset_USampler1D1_Float1_Int1 =
+ TSymbolUniqueId(1161);
+ static constexpr const TSymbolUniqueId textureOffset_Sampler2DRect1_Float2_Int2 =
+ TSymbolUniqueId(1162);
+ static constexpr const TSymbolUniqueId textureOffset_ISampler2DRect1_Float2_Int2 =
+ TSymbolUniqueId(1163);
+ static constexpr const TSymbolUniqueId textureOffset_USampler2DRect1_Float2_Int2 =
+ TSymbolUniqueId(1164);
+ static constexpr const TSymbolUniqueId textureOffset_Sampler2DRectShadow1_Float3_Int2 =
+ TSymbolUniqueId(1165);
+ static constexpr const TSymbolUniqueId textureOffset_Sampler1DShadow1_Float3_Int1 =
+ TSymbolUniqueId(1166);
+ static constexpr const TSymbolUniqueId textureOffset_Sampler1DArray1_Float2_Int1 =
+ TSymbolUniqueId(1167);
+ static constexpr const TSymbolUniqueId textureOffset_ISampler1DArray1_Float2_Int1 =
+ TSymbolUniqueId(1168);
+ static constexpr const TSymbolUniqueId textureOffset_USampler1DArray1_Float2_Int1 =
+ TSymbolUniqueId(1169);
+ static constexpr const TSymbolUniqueId textureOffset_Sampler1DArrayShadow1_Float3_Int1 =
+ TSymbolUniqueId(1170);
+ static constexpr const TSymbolUniqueId textureOffset_Sampler2DArrayShadow1_Float4_Int2 =
+ TSymbolUniqueId(1171);
+ static constexpr const TSymbolUniqueId textureProjOffset_Sampler2D1_Float3_Int2 =
+ TSymbolUniqueId(1172);
+ static constexpr const TSymbolUniqueId textureProjOffset_ISampler2D1_Float3_Int2 =
+ TSymbolUniqueId(1173);
+ static constexpr const TSymbolUniqueId textureProjOffset_USampler2D1_Float3_Int2 =
+ TSymbolUniqueId(1174);
+ static constexpr const TSymbolUniqueId textureProjOffset_Sampler2D1_Float4_Int2 =
+ TSymbolUniqueId(1175);
+ static constexpr const TSymbolUniqueId textureProjOffset_ISampler2D1_Float4_Int2 =
+ TSymbolUniqueId(1176);
+ static constexpr const TSymbolUniqueId textureProjOffset_USampler2D1_Float4_Int2 =
+ TSymbolUniqueId(1177);
+ static constexpr const TSymbolUniqueId textureProjOffset_Sampler3D1_Float4_Int3 =
+ TSymbolUniqueId(1178);
+ static constexpr const TSymbolUniqueId textureProjOffset_ISampler3D1_Float4_Int3 =
+ TSymbolUniqueId(1179);
+ static constexpr const TSymbolUniqueId textureProjOffset_USampler3D1_Float4_Int3 =
+ TSymbolUniqueId(1180);
+ static constexpr const TSymbolUniqueId textureProjOffset_Sampler2DShadow1_Float4_Int2 =
+ TSymbolUniqueId(1181);
+ static constexpr const TSymbolUniqueId textureProjOffset_Sampler1D1_Float2_Int1 =
+ TSymbolUniqueId(1182);
+ static constexpr const TSymbolUniqueId textureProjOffset_ISampler1D1_Float2_Int1 =
+ TSymbolUniqueId(1183);
+ static constexpr const TSymbolUniqueId textureProjOffset_USampler1D1_Float2_Int1 =
+ TSymbolUniqueId(1184);
+ static constexpr const TSymbolUniqueId textureProjOffset_Sampler1D1_Float4_Int1 =
+ TSymbolUniqueId(1185);
+ static constexpr const TSymbolUniqueId textureProjOffset_ISampler1D1_Float4_Int1 =
+ TSymbolUniqueId(1186);
+ static constexpr const TSymbolUniqueId textureProjOffset_USampler1D1_Float4_Int1 =
+ TSymbolUniqueId(1187);
+ static constexpr const TSymbolUniqueId textureProjOffset_Sampler2DRect1_Float3_Int2 =
+ TSymbolUniqueId(1188);
+ static constexpr const TSymbolUniqueId textureProjOffset_ISampler2DRect1_Float3_Int2 =
+ TSymbolUniqueId(1189);
+ static constexpr const TSymbolUniqueId textureProjOffset_USampler2DRect1_Float3_Int2 =
+ TSymbolUniqueId(1190);
+ static constexpr const TSymbolUniqueId textureProjOffset_Sampler2DRect1_Float4_Int2 =
+ TSymbolUniqueId(1191);
+ static constexpr const TSymbolUniqueId textureProjOffset_ISampler2DRect1_Float4_Int2 =
+ TSymbolUniqueId(1192);
+ static constexpr const TSymbolUniqueId textureProjOffset_USampler2DRect1_Float4_Int2 =
+ TSymbolUniqueId(1193);
+ static constexpr const TSymbolUniqueId textureProjOffset_Sampler2DRectShadow1_Float4_Int2 =
+ TSymbolUniqueId(1194);
+ static constexpr const TSymbolUniqueId textureProjOffset_Sampler1DShadow1_Float4_Int1 =
+ TSymbolUniqueId(1195);
+ static constexpr const TSymbolUniqueId textureLodOffset_Sampler2D1_Float2_Float1_Int2 =
+ TSymbolUniqueId(1196);
+ static constexpr const TSymbolUniqueId textureLodOffset_ISampler2D1_Float2_Float1_Int2 =
+ TSymbolUniqueId(1197);
+ static constexpr const TSymbolUniqueId textureLodOffset_USampler2D1_Float2_Float1_Int2 =
+ TSymbolUniqueId(1198);
+ static constexpr const TSymbolUniqueId textureLodOffset_Sampler3D1_Float3_Float1_Int3 =
+ TSymbolUniqueId(1199);
+ static constexpr const TSymbolUniqueId textureLodOffset_ISampler3D1_Float3_Float1_Int3 =
+ TSymbolUniqueId(1200);
+ static constexpr const TSymbolUniqueId textureLodOffset_USampler3D1_Float3_Float1_Int3 =
+ TSymbolUniqueId(1201);
+ static constexpr const TSymbolUniqueId textureLodOffset_Sampler2DShadow1_Float3_Float1_Int2 =
+ TSymbolUniqueId(1202);
+ static constexpr const TSymbolUniqueId textureLodOffset_Sampler2DArray1_Float3_Float1_Int2 =
+ TSymbolUniqueId(1203);
+ static constexpr const TSymbolUniqueId textureLodOffset_ISampler2DArray1_Float3_Float1_Int2 =
+ TSymbolUniqueId(1204);
+ static constexpr const TSymbolUniqueId textureLodOffset_USampler2DArray1_Float3_Float1_Int2 =
+ TSymbolUniqueId(1205);
+ static constexpr const TSymbolUniqueId textureLodOffset_Sampler1D1_Float1_Float1_Int1 =
+ TSymbolUniqueId(1206);
+ static constexpr const TSymbolUniqueId textureLodOffset_ISampler1D1_Float1_Float1_Int1 =
+ TSymbolUniqueId(1207);
+ static constexpr const TSymbolUniqueId textureLodOffset_USampler1D1_Float1_Float1_Int1 =
+ TSymbolUniqueId(1208);
+ static constexpr const TSymbolUniqueId textureLodOffset_Sampler1DShadow1_Float3_Float1_Int1 =
+ TSymbolUniqueId(1209);
+ static constexpr const TSymbolUniqueId textureLodOffset_Sampler1DArray1_Float2_Float1_Int1 =
+ TSymbolUniqueId(1210);
+ static constexpr const TSymbolUniqueId textureLodOffset_ISampler1DArray1_Float2_Float1_Int1 =
+ TSymbolUniqueId(1211);
+ static constexpr const TSymbolUniqueId textureLodOffset_USampler1DArray1_Float2_Float1_Int1 =
+ TSymbolUniqueId(1212);
+ static constexpr const TSymbolUniqueId
+ textureLodOffset_Sampler1DArrayShadow1_Float3_Float1_Int1 = TSymbolUniqueId(1213);
+ static constexpr const TSymbolUniqueId textureProjLodOffset_Sampler2D1_Float3_Float1_Int2 =
+ TSymbolUniqueId(1214);
+ static constexpr const TSymbolUniqueId textureProjLodOffset_ISampler2D1_Float3_Float1_Int2 =
+ TSymbolUniqueId(1215);
+ static constexpr const TSymbolUniqueId textureProjLodOffset_USampler2D1_Float3_Float1_Int2 =
+ TSymbolUniqueId(1216);
+ static constexpr const TSymbolUniqueId textureProjLodOffset_Sampler2D1_Float4_Float1_Int2 =
+ TSymbolUniqueId(1217);
+ static constexpr const TSymbolUniqueId textureProjLodOffset_ISampler2D1_Float4_Float1_Int2 =
+ TSymbolUniqueId(1218);
+ static constexpr const TSymbolUniqueId textureProjLodOffset_USampler2D1_Float4_Float1_Int2 =
+ TSymbolUniqueId(1219);
+ static constexpr const TSymbolUniqueId textureProjLodOffset_Sampler3D1_Float4_Float1_Int3 =
+ TSymbolUniqueId(1220);
+ static constexpr const TSymbolUniqueId textureProjLodOffset_ISampler3D1_Float4_Float1_Int3 =
+ TSymbolUniqueId(1221);
+ static constexpr const TSymbolUniqueId textureProjLodOffset_USampler3D1_Float4_Float1_Int3 =
+ TSymbolUniqueId(1222);
+ static constexpr const TSymbolUniqueId
+ textureProjLodOffset_Sampler2DShadow1_Float4_Float1_Int2 = TSymbolUniqueId(1223);
+ static constexpr const TSymbolUniqueId textureProjLodOffset_Sampler1D1_Float2_Float1_Int1 =
+ TSymbolUniqueId(1224);
+ static constexpr const TSymbolUniqueId textureProjLodOffset_ISampler1D1_Float2_Float1_Int1 =
+ TSymbolUniqueId(1225);
+ static constexpr const TSymbolUniqueId textureProjLodOffset_USampler1D1_Float2_Float1_Int1 =
+ TSymbolUniqueId(1226);
+ static constexpr const TSymbolUniqueId textureProjLodOffset_Sampler1D1_Float4_Float1_Int1 =
+ TSymbolUniqueId(1227);
+ static constexpr const TSymbolUniqueId textureProjLodOffset_ISampler1D1_Float4_Float1_Int1 =
+ TSymbolUniqueId(1228);
+ static constexpr const TSymbolUniqueId textureProjLodOffset_USampler1D1_Float4_Float1_Int1 =
+ TSymbolUniqueId(1229);
+ static constexpr const TSymbolUniqueId
+ textureProjLodOffset_Sampler1DShadow1_Float4_Float1_Int1 = TSymbolUniqueId(1230);
+ static constexpr const TSymbolUniqueId texelFetchOffset_Sampler2D1_Int2_Int1_Int2 =
+ TSymbolUniqueId(1231);
+ static constexpr const TSymbolUniqueId texelFetchOffset_ISampler2D1_Int2_Int1_Int2 =
+ TSymbolUniqueId(1232);
+ static constexpr const TSymbolUniqueId texelFetchOffset_USampler2D1_Int2_Int1_Int2 =
+ TSymbolUniqueId(1233);
+ static constexpr const TSymbolUniqueId texelFetchOffset_Sampler3D1_Int3_Int1_Int3 =
+ TSymbolUniqueId(1234);
+ static constexpr const TSymbolUniqueId texelFetchOffset_ISampler3D1_Int3_Int1_Int3 =
+ TSymbolUniqueId(1235);
+ static constexpr const TSymbolUniqueId texelFetchOffset_USampler3D1_Int3_Int1_Int3 =
+ TSymbolUniqueId(1236);
+ static constexpr const TSymbolUniqueId texelFetchOffset_Sampler2DArray1_Int3_Int1_Int2 =
+ TSymbolUniqueId(1237);
+ static constexpr const TSymbolUniqueId texelFetchOffset_ISampler2DArray1_Int3_Int1_Int2 =
+ TSymbolUniqueId(1238);
+ static constexpr const TSymbolUniqueId texelFetchOffset_USampler2DArray1_Int3_Int1_Int2 =
+ TSymbolUniqueId(1239);
+ static constexpr const TSymbolUniqueId texelFetchOffset_Sampler1D1_Int1_Int1_Int1 =
+ TSymbolUniqueId(1240);
+ static constexpr const TSymbolUniqueId texelFetchOffset_ISampler1D1_Int1_Int1_Int1 =
+ TSymbolUniqueId(1241);
+ static constexpr const TSymbolUniqueId texelFetchOffset_USampler1D1_Int1_Int1_Int1 =
+ TSymbolUniqueId(1242);
+ static constexpr const TSymbolUniqueId texelFetchOffset_Sampler2DRect1_Int2_Int2 =
+ TSymbolUniqueId(1243);
+ static constexpr const TSymbolUniqueId texelFetchOffset_ISampler2DRect1_Int2_Int2 =
+ TSymbolUniqueId(1244);
+ static constexpr const TSymbolUniqueId texelFetchOffset_USampler2DRect1_Int2_Int2 =
+ TSymbolUniqueId(1245);
+ static constexpr const TSymbolUniqueId texelFetchOffset_Sampler1DArray1_Int2_Int1_Int1 =
+ TSymbolUniqueId(1246);
+ static constexpr const TSymbolUniqueId texelFetchOffset_ISampler1DArray1_Int2_Int1_Int1 =
+ TSymbolUniqueId(1247);
+ static constexpr const TSymbolUniqueId texelFetchOffset_USampler1DArray1_Int2_Int1_Int1 =
+ TSymbolUniqueId(1248);
+ static constexpr const TSymbolUniqueId textureGradOffset_Sampler2D1_Float2_Float2_Float2_Int2 =
+ TSymbolUniqueId(1249);
+ static constexpr const TSymbolUniqueId textureGradOffset_ISampler2D1_Float2_Float2_Float2_Int2 =
+ TSymbolUniqueId(1250);
+ static constexpr const TSymbolUniqueId textureGradOffset_USampler2D1_Float2_Float2_Float2_Int2 =
+ TSymbolUniqueId(1251);
+ static constexpr const TSymbolUniqueId textureGradOffset_Sampler3D1_Float3_Float3_Float3_Int3 =
+ TSymbolUniqueId(1252);
+ static constexpr const TSymbolUniqueId textureGradOffset_ISampler3D1_Float3_Float3_Float3_Int3 =
+ TSymbolUniqueId(1253);
+ static constexpr const TSymbolUniqueId textureGradOffset_USampler3D1_Float3_Float3_Float3_Int3 =
+ TSymbolUniqueId(1254);
+ static constexpr const TSymbolUniqueId
+ textureGradOffset_Sampler2DShadow1_Float3_Float2_Float2_Int2 = TSymbolUniqueId(1255);
+ static constexpr const TSymbolUniqueId
+ textureGradOffset_Sampler2DArray1_Float3_Float2_Float2_Int2 = TSymbolUniqueId(1256);
+ static constexpr const TSymbolUniqueId
+ textureGradOffset_ISampler2DArray1_Float3_Float2_Float2_Int2 = TSymbolUniqueId(1257);
+ static constexpr const TSymbolUniqueId
+ textureGradOffset_USampler2DArray1_Float3_Float2_Float2_Int2 = TSymbolUniqueId(1258);
+ static constexpr const TSymbolUniqueId
+ textureGradOffset_Sampler2DArrayShadow1_Float4_Float2_Float2_Int2 = TSymbolUniqueId(1259);
+ static constexpr const TSymbolUniqueId textureGradOffset_Sampler1D1_Float1_Float1_Float1_Int1 =
+ TSymbolUniqueId(1260);
+ static constexpr const TSymbolUniqueId textureGradOffset_ISampler1D1_Float1_Float1_Float1_Int1 =
+ TSymbolUniqueId(1261);
+ static constexpr const TSymbolUniqueId textureGradOffset_USampler1D1_Float1_Float1_Float1_Int1 =
+ TSymbolUniqueId(1262);
+ static constexpr const TSymbolUniqueId
+ textureGradOffset_Sampler2DRect1_Float2_Float2_Float2_Int2 = TSymbolUniqueId(1263);
+ static constexpr const TSymbolUniqueId
+ textureGradOffset_ISampler2DRect1_Float2_Float2_Float2_Int2 = TSymbolUniqueId(1264);
+ static constexpr const TSymbolUniqueId
+ textureGradOffset_USampler2DRect1_Float2_Float2_Float2_Int2 = TSymbolUniqueId(1265);
+ static constexpr const TSymbolUniqueId
+ textureGradOffset_Sampler2DRectShadow1_Float3_Float2_Float2_Int2 = TSymbolUniqueId(1266);
+ static constexpr const TSymbolUniqueId
+ textureGradOffset_Sampler1DShadow1_Float3_Float1_Float1_Int1 = TSymbolUniqueId(1267);
+ static constexpr const TSymbolUniqueId
+ textureGradOffset_Sampler1DArray1_Float2_Float1_Float1_Int1 = TSymbolUniqueId(1268);
+ static constexpr const TSymbolUniqueId
+ textureGradOffset_ISampler1DArray1_Float2_Float1_Float1_Int1 = TSymbolUniqueId(1269);
+ static constexpr const TSymbolUniqueId
+ textureGradOffset_USampler1DArray1_Float2_Float1_Float1_Int1 = TSymbolUniqueId(1270);
+ static constexpr const TSymbolUniqueId
+ textureGradOffset_Sampler1DArrayShadow1_Float3_Float1_Float1_Int1 = TSymbolUniqueId(1271);
+ static constexpr const TSymbolUniqueId
+ textureProjGradOffset_Sampler2D1_Float3_Float2_Float2_Int2 = TSymbolUniqueId(1272);
+ static constexpr const TSymbolUniqueId
+ textureProjGradOffset_ISampler2D1_Float3_Float2_Float2_Int2 = TSymbolUniqueId(1273);
+ static constexpr const TSymbolUniqueId
+ textureProjGradOffset_USampler2D1_Float3_Float2_Float2_Int2 = TSymbolUniqueId(1274);
+ static constexpr const TSymbolUniqueId
+ textureProjGradOffset_Sampler2D1_Float4_Float2_Float2_Int2 = TSymbolUniqueId(1275);
+ static constexpr const TSymbolUniqueId
+ textureProjGradOffset_ISampler2D1_Float4_Float2_Float2_Int2 = TSymbolUniqueId(1276);
+ static constexpr const TSymbolUniqueId
+ textureProjGradOffset_USampler2D1_Float4_Float2_Float2_Int2 = TSymbolUniqueId(1277);
+ static constexpr const TSymbolUniqueId
+ textureProjGradOffset_Sampler3D1_Float4_Float3_Float3_Int3 = TSymbolUniqueId(1278);
+ static constexpr const TSymbolUniqueId
+ textureProjGradOffset_ISampler3D1_Float4_Float3_Float3_Int3 = TSymbolUniqueId(1279);
+ static constexpr const TSymbolUniqueId
+ textureProjGradOffset_USampler3D1_Float4_Float3_Float3_Int3 = TSymbolUniqueId(1280);
+ static constexpr const TSymbolUniqueId
+ textureProjGradOffset_Sampler2DShadow1_Float4_Float2_Float2_Int2 = TSymbolUniqueId(1281);
+ static constexpr const TSymbolUniqueId
+ textureProjGradOffset_Sampler1D1_Float2_Float1_Float1_Int1 = TSymbolUniqueId(1282);
+ static constexpr const TSymbolUniqueId
+ textureProjGradOffset_ISampler1D1_Float2_Float1_Float1_Int1 = TSymbolUniqueId(1283);
+ static constexpr const TSymbolUniqueId
+ textureProjGradOffset_USampler1D1_Float2_Float1_Float1_Int1 = TSymbolUniqueId(1284);
+ static constexpr const TSymbolUniqueId
+ textureProjGradOffset_Sampler1D1_Float4_Float1_Float1_Int1 = TSymbolUniqueId(1285);
+ static constexpr const TSymbolUniqueId
+ textureProjGradOffset_ISampler1D1_Float4_Float1_Float1_Int1 = TSymbolUniqueId(1286);
+ static constexpr const TSymbolUniqueId
+ textureProjGradOffset_USampler1D1_Float4_Float1_Float1_Int1 = TSymbolUniqueId(1287);
+ static constexpr const TSymbolUniqueId
+ textureProjGradOffset_Sampler2DRect1_Float3_Float2_Float2_Int2 = TSymbolUniqueId(1288);
+ static constexpr const TSymbolUniqueId
+ textureProjGradOffset_ISampler2DRect1_Float3_Float2_Float2_Int2 = TSymbolUniqueId(1289);
+ static constexpr const TSymbolUniqueId
+ textureProjGradOffset_USampler2DRect1_Float3_Float2_Float2_Int2 = TSymbolUniqueId(1290);
+ static constexpr const TSymbolUniqueId
+ textureProjGradOffset_Sampler2DRect1_Float4_Float2_Float2_Int2 = TSymbolUniqueId(1291);
+ static constexpr const TSymbolUniqueId
+ textureProjGradOffset_ISampler2DRect1_Float4_Float2_Float2_Int2 = TSymbolUniqueId(1292);
+ static constexpr const TSymbolUniqueId
+ textureProjGradOffset_USampler2DRect1_Float4_Float2_Float2_Int2 = TSymbolUniqueId(1293);
+ static constexpr const TSymbolUniqueId
+ textureProjGradOffset_Sampler2DRectShadow1_Float4_Float2_Float2_Int2 =
+ TSymbolUniqueId(1294);
+ static constexpr const TSymbolUniqueId
+ textureProjGradOffset_Sampler1DShadow1_Float4_Float1_Float1_Int1 = TSymbolUniqueId(1295);
+ static constexpr const TSymbolUniqueId textureOffset_Sampler2D1_Float2_Int2_Float1 =
+ TSymbolUniqueId(1296);
+ static constexpr const TSymbolUniqueId textureOffset_ISampler2D1_Float2_Int2_Float1 =
+ TSymbolUniqueId(1297);
+ static constexpr const TSymbolUniqueId textureOffset_USampler2D1_Float2_Int2_Float1 =
+ TSymbolUniqueId(1298);
+ static constexpr const TSymbolUniqueId textureOffset_Sampler3D1_Float3_Int3_Float1 =
+ TSymbolUniqueId(1299);
+ static constexpr const TSymbolUniqueId textureOffset_ISampler3D1_Float3_Int3_Float1 =
+ TSymbolUniqueId(1300);
+ static constexpr const TSymbolUniqueId textureOffset_USampler3D1_Float3_Int3_Float1 =
+ TSymbolUniqueId(1301);
+ static constexpr const TSymbolUniqueId textureOffset_Sampler2DShadow1_Float3_Int2_Float1 =
+ TSymbolUniqueId(1302);
+ static constexpr const TSymbolUniqueId textureOffset_Sampler2DArray1_Float3_Int2_Float1 =
+ TSymbolUniqueId(1303);
+ static constexpr const TSymbolUniqueId textureOffset_ISampler2DArray1_Float3_Int2_Float1 =
+ TSymbolUniqueId(1304);
+ static constexpr const TSymbolUniqueId textureOffset_USampler2DArray1_Float3_Int2_Float1 =
+ TSymbolUniqueId(1305);
+ static constexpr const TSymbolUniqueId textureOffset_Sampler1D1_Float1_Int1_Float1 =
+ TSymbolUniqueId(1306);
+ static constexpr const TSymbolUniqueId textureOffset_ISampler1D1_Float1_Int1_Float1 =
+ TSymbolUniqueId(1307);
+ static constexpr const TSymbolUniqueId textureOffset_USampler1D1_Float1_Int1_Float1 =
+ TSymbolUniqueId(1308);
+ static constexpr const TSymbolUniqueId textureOffset_Sampler1DShadow1_Float3_Int1_Float1 =
+ TSymbolUniqueId(1309);
+ static constexpr const TSymbolUniqueId textureOffset_Sampler1DArray1_Float2_Int1_Float1 =
+ TSymbolUniqueId(1310);
+ static constexpr const TSymbolUniqueId textureOffset_ISampler1DArray1_Float2_Int1_Float1 =
+ TSymbolUniqueId(1311);
+ static constexpr const TSymbolUniqueId textureOffset_USampler1DArray1_Float2_Int1_Float1 =
+ TSymbolUniqueId(1312);
+ static constexpr const TSymbolUniqueId textureOffset_Sampler1DArrayShadow1_Float3_Int1_Float1 =
+ TSymbolUniqueId(1313);
+ static constexpr const TSymbolUniqueId textureProjOffset_Sampler2D1_Float3_Int2_Float1 =
+ TSymbolUniqueId(1314);
+ static constexpr const TSymbolUniqueId textureProjOffset_ISampler2D1_Float3_Int2_Float1 =
+ TSymbolUniqueId(1315);
+ static constexpr const TSymbolUniqueId textureProjOffset_USampler2D1_Float3_Int2_Float1 =
+ TSymbolUniqueId(1316);
+ static constexpr const TSymbolUniqueId textureProjOffset_Sampler2D1_Float4_Int2_Float1 =
+ TSymbolUniqueId(1317);
+ static constexpr const TSymbolUniqueId textureProjOffset_ISampler2D1_Float4_Int2_Float1 =
+ TSymbolUniqueId(1318);
+ static constexpr const TSymbolUniqueId textureProjOffset_USampler2D1_Float4_Int2_Float1 =
+ TSymbolUniqueId(1319);
+ static constexpr const TSymbolUniqueId textureProjOffset_Sampler3D1_Float4_Int3_Float1 =
+ TSymbolUniqueId(1320);
+ static constexpr const TSymbolUniqueId textureProjOffset_ISampler3D1_Float4_Int3_Float1 =
+ TSymbolUniqueId(1321);
+ static constexpr const TSymbolUniqueId textureProjOffset_USampler3D1_Float4_Int3_Float1 =
+ TSymbolUniqueId(1322);
+ static constexpr const TSymbolUniqueId textureProjOffset_Sampler2DShadow1_Float4_Int2_Float1 =
+ TSymbolUniqueId(1323);
+ static constexpr const TSymbolUniqueId textureProjOffset_Sampler1D1_Float2_Int1_Float1 =
+ TSymbolUniqueId(1324);
+ static constexpr const TSymbolUniqueId textureProjOffset_ISampler1D1_Float2_Int1_Float1 =
+ TSymbolUniqueId(1325);
+ static constexpr const TSymbolUniqueId textureProjOffset_USampler1D1_Float2_Int1_Float1 =
+ TSymbolUniqueId(1326);
+ static constexpr const TSymbolUniqueId textureProjOffset_Sampler1D1_Float4_Int1_Float1 =
+ TSymbolUniqueId(1327);
+ static constexpr const TSymbolUniqueId textureProjOffset_ISampler1D1_Float4_Int1_Float1 =
+ TSymbolUniqueId(1328);
+ static constexpr const TSymbolUniqueId textureProjOffset_USampler1D1_Float4_Int1_Float1 =
+ TSymbolUniqueId(1329);
+ static constexpr const TSymbolUniqueId textureProjOffset_Sampler1DShadow1_Float4_Int1_Float1 =
+ TSymbolUniqueId(1330);
+ static constexpr const TSymbolUniqueId textureGather_Sampler2D1_Float2 = TSymbolUniqueId(1331);
+ static constexpr const TSymbolUniqueId textureGather_ISampler2D1_Float2 = TSymbolUniqueId(1332);
+ static constexpr const TSymbolUniqueId textureGather_USampler2D1_Float2 = TSymbolUniqueId(1333);
+ static constexpr const TSymbolUniqueId textureGather_Sampler2D1_Float2_Int1 =
+ TSymbolUniqueId(1334);
+ static constexpr const TSymbolUniqueId textureGather_ISampler2D1_Float2_Int1 =
+ TSymbolUniqueId(1335);
+ static constexpr const TSymbolUniqueId textureGather_USampler2D1_Float2_Int1 =
+ TSymbolUniqueId(1336);
+ static constexpr const TSymbolUniqueId textureGather_Sampler2DArray1_Float3 =
+ TSymbolUniqueId(1337);
+ static constexpr const TSymbolUniqueId textureGather_ISampler2DArray1_Float3 =
+ TSymbolUniqueId(1338);
+ static constexpr const TSymbolUniqueId textureGather_USampler2DArray1_Float3 =
+ TSymbolUniqueId(1339);
+ static constexpr const TSymbolUniqueId textureGather_Sampler2DArray1_Float3_Int1 =
+ TSymbolUniqueId(1340);
+ static constexpr const TSymbolUniqueId textureGather_ISampler2DArray1_Float3_Int1 =
+ TSymbolUniqueId(1341);
+ static constexpr const TSymbolUniqueId textureGather_USampler2DArray1_Float3_Int1 =
+ TSymbolUniqueId(1342);
+ static constexpr const TSymbolUniqueId textureGather_SamplerCube1_Float3 =
+ TSymbolUniqueId(1343);
+ static constexpr const TSymbolUniqueId textureGather_ISamplerCube1_Float3 =
+ TSymbolUniqueId(1344);
+ static constexpr const TSymbolUniqueId textureGather_USamplerCube1_Float3 =
+ TSymbolUniqueId(1345);
+ static constexpr const TSymbolUniqueId textureGather_SamplerCube1_Float3_Int1 =
+ TSymbolUniqueId(1346);
+ static constexpr const TSymbolUniqueId textureGather_ISamplerCube1_Float3_Int1 =
+ TSymbolUniqueId(1347);
+ static constexpr const TSymbolUniqueId textureGather_USamplerCube1_Float3_Int1 =
+ TSymbolUniqueId(1348);
+ static constexpr const TSymbolUniqueId textureGather_SamplerCubeArray1_Float4 =
+ TSymbolUniqueId(1349);
+ static constexpr const TSymbolUniqueId textureGather_ISamplerCubeArray1_Float4 =
+ TSymbolUniqueId(1350);
+ static constexpr const TSymbolUniqueId textureGather_USamplerCubeArray1_Float4 =
+ TSymbolUniqueId(1351);
+ static constexpr const TSymbolUniqueId textureGather_SamplerCubeArray1_Float4_Int1 =
+ TSymbolUniqueId(1352);
+ static constexpr const TSymbolUniqueId textureGather_ISamplerCubeArray1_Float4_Int1 =
+ TSymbolUniqueId(1353);
+ static constexpr const TSymbolUniqueId textureGather_USamplerCubeArray1_Float4_Int1 =
+ TSymbolUniqueId(1354);
+ static constexpr const TSymbolUniqueId textureGather_SamplerCubeArrayShadow1_Float4_Float1 =
+ TSymbolUniqueId(1355);
+ static constexpr const TSymbolUniqueId textureGatherExt_SamplerCubeArray1_Float4 =
+ TSymbolUniqueId(1356);
+ static constexpr const TSymbolUniqueId textureGatherExt_ISamplerCubeArray1_Float4 =
+ TSymbolUniqueId(1357);
+ static constexpr const TSymbolUniqueId textureGatherExt_USamplerCubeArray1_Float4 =
+ TSymbolUniqueId(1358);
+ static constexpr const TSymbolUniqueId textureGatherExt_SamplerCubeArray1_Float4_Int1 =
+ TSymbolUniqueId(1359);
+ static constexpr const TSymbolUniqueId textureGatherExt_ISamplerCubeArray1_Float4_Int1 =
+ TSymbolUniqueId(1360);
+ static constexpr const TSymbolUniqueId textureGatherExt_USamplerCubeArray1_Float4_Int1 =
+ TSymbolUniqueId(1361);
+ static constexpr const TSymbolUniqueId textureGatherExt_SamplerCubeArrayShadow1_Float4_Float1 =
+ TSymbolUniqueId(1362);
+ static constexpr const TSymbolUniqueId textureGather_Sampler2DRect1_Float3 =
+ TSymbolUniqueId(1363);
+ static constexpr const TSymbolUniqueId textureGather_ISampler2DRect1_Float3 =
+ TSymbolUniqueId(1364);
+ static constexpr const TSymbolUniqueId textureGather_USampler2DRect1_Float3 =
+ TSymbolUniqueId(1365);
+ static constexpr const TSymbolUniqueId textureGather_Sampler2DRect1_Float3_Int1 =
+ TSymbolUniqueId(1366);
+ static constexpr const TSymbolUniqueId textureGather_ISampler2DRect1_Float3_Int1 =
+ TSymbolUniqueId(1367);
+ static constexpr const TSymbolUniqueId textureGather_USampler2DRect1_Float3_Int1 =
+ TSymbolUniqueId(1368);
+ static constexpr const TSymbolUniqueId textureGather_Sampler2DRectShadow1_Float2_Float1 =
+ TSymbolUniqueId(1369);
+ static constexpr const TSymbolUniqueId textureGather_Sampler2DShadow1_Float2 =
+ TSymbolUniqueId(1370);
+ static constexpr const TSymbolUniqueId textureGather_Sampler2DShadow1_Float2_Float1 =
+ TSymbolUniqueId(1371);
+ static constexpr const TSymbolUniqueId textureGather_Sampler2DArrayShadow1_Float3 =
+ TSymbolUniqueId(1372);
+ static constexpr const TSymbolUniqueId textureGather_Sampler2DArrayShadow1_Float3_Float1 =
+ TSymbolUniqueId(1373);
+ static constexpr const TSymbolUniqueId textureGather_SamplerCubeShadow1_Float3 =
+ TSymbolUniqueId(1374);
+ static constexpr const TSymbolUniqueId textureGather_SamplerCubeShadow1_Float3_Float1 =
+ TSymbolUniqueId(1375);
+ static constexpr const TSymbolUniqueId textureGatherOffset_Sampler2D1_Float2_Int2 =
+ TSymbolUniqueId(1376);
+ static constexpr const TSymbolUniqueId textureGatherOffset_ISampler2D1_Float2_Int2 =
+ TSymbolUniqueId(1377);
+ static constexpr const TSymbolUniqueId textureGatherOffset_USampler2D1_Float2_Int2 =
+ TSymbolUniqueId(1378);
+ static constexpr const TSymbolUniqueId textureGatherOffset_Sampler2DArray1_Float3_Int2 =
+ TSymbolUniqueId(1379);
+ static constexpr const TSymbolUniqueId textureGatherOffset_ISampler2DArray1_Float3_Int2 =
+ TSymbolUniqueId(1380);
+ static constexpr const TSymbolUniqueId textureGatherOffset_USampler2DArray1_Float3_Int2 =
+ TSymbolUniqueId(1381);
+ static constexpr const TSymbolUniqueId textureGatherOffset_Sampler2DShadow1_Float2_Float1_Int2 =
+ TSymbolUniqueId(1382);
+ static constexpr const TSymbolUniqueId
+ textureGatherOffset_Sampler2DArrayShadow1_Float3_Float1_Int2 = TSymbolUniqueId(1383);
+ static constexpr const TSymbolUniqueId textureGatherOffset_Sampler2DRect1_Float2_Int2 =
+ TSymbolUniqueId(1384);
+ static constexpr const TSymbolUniqueId textureGatherOffset_ISampler2DRect1_Float2_Int2 =
+ TSymbolUniqueId(1385);
+ static constexpr const TSymbolUniqueId textureGatherOffset_USampler2DRect1_Float2_Int2 =
+ TSymbolUniqueId(1386);
+ static constexpr const TSymbolUniqueId
+ textureGatherOffset_Sampler2DRectShadow1_Float2_Float1_Int2 = TSymbolUniqueId(1387);
+ static constexpr const TSymbolUniqueId textureGatherOffset_Sampler2D1_Float2_Int2_Int1 =
+ TSymbolUniqueId(1388);
+ static constexpr const TSymbolUniqueId textureGatherOffset_ISampler2D1_Float2_Int2_Int1 =
+ TSymbolUniqueId(1389);
+ static constexpr const TSymbolUniqueId textureGatherOffset_USampler2D1_Float2_Int2_Int1 =
+ TSymbolUniqueId(1390);
+ static constexpr const TSymbolUniqueId textureGatherOffset_Sampler2DArray1_Float3_Int2_Int1 =
+ TSymbolUniqueId(1391);
+ static constexpr const TSymbolUniqueId textureGatherOffset_ISampler2DArray1_Float3_Int2_Int1 =
+ TSymbolUniqueId(1392);
+ static constexpr const TSymbolUniqueId textureGatherOffset_USampler2DArray1_Float3_Int2_Int1 =
+ TSymbolUniqueId(1393);
+ static constexpr const TSymbolUniqueId textureGatherOffset_Sampler2DRect1_Float2_Int2_Int1 =
+ TSymbolUniqueId(1394);
+ static constexpr const TSymbolUniqueId textureGatherOffset_ISampler2DRect1_Float2_Int2_Int1 =
+ TSymbolUniqueId(1395);
+ static constexpr const TSymbolUniqueId textureGatherOffset_USampler2DRect1_Float2_Int2_Int1 =
+ TSymbolUniqueId(1396);
+ static constexpr const TSymbolUniqueId textureGatherOffsets_Sampler2D1_Float2_4xInt2 =
+ TSymbolUniqueId(1397);
+ static constexpr const TSymbolUniqueId pt10Dx4 = TSymbolUniqueId(1398);
+ static constexpr const TSymbolUniqueId textureGatherOffsets_ISampler2D1_Float2_4xInt2 =
+ TSymbolUniqueId(1399);
+ static constexpr const TSymbolUniqueId textureGatherOffsets_USampler2D1_Float2_4xInt2 =
+ TSymbolUniqueId(1400);
+ static constexpr const TSymbolUniqueId textureGatherOffsets_Sampler2DArray1_Float3_4xInt2 =
+ TSymbolUniqueId(1401);
+ static constexpr const TSymbolUniqueId textureGatherOffsets_ISampler2DArray1_Float3_4xInt2 =
+ TSymbolUniqueId(1402);
+ static constexpr const TSymbolUniqueId textureGatherOffsets_USampler2DArray1_Float3_4xInt2 =
+ TSymbolUniqueId(1403);
+ static constexpr const TSymbolUniqueId
+ textureGatherOffsets_Sampler2DShadow1_Float2_Float1_4xInt2 = TSymbolUniqueId(1404);
+ static constexpr const TSymbolUniqueId
+ textureGatherOffsets_Sampler2DArrayShadow1_Float3_Float1_4xInt2 = TSymbolUniqueId(1405);
+ static constexpr const TSymbolUniqueId textureGatherOffsetsExt_Sampler2D1_Float2_4xInt2 =
+ TSymbolUniqueId(1406);
+ static constexpr const TSymbolUniqueId textureGatherOffsetsExt_ISampler2D1_Float2_4xInt2 =
+ TSymbolUniqueId(1407);
+ static constexpr const TSymbolUniqueId textureGatherOffsetsExt_USampler2D1_Float2_4xInt2 =
+ TSymbolUniqueId(1408);
+ static constexpr const TSymbolUniqueId textureGatherOffsetsExt_Sampler2DArray1_Float3_4xInt2 =
+ TSymbolUniqueId(1409);
+ static constexpr const TSymbolUniqueId textureGatherOffsetsExt_ISampler2DArray1_Float3_4xInt2 =
+ TSymbolUniqueId(1410);
+ static constexpr const TSymbolUniqueId textureGatherOffsetsExt_USampler2DArray1_Float3_4xInt2 =
+ TSymbolUniqueId(1411);
+ static constexpr const TSymbolUniqueId
+ textureGatherOffsetsExt_Sampler2DShadow1_Float2_Float1_4xInt2 = TSymbolUniqueId(1412);
+ static constexpr const TSymbolUniqueId
+ textureGatherOffsetsExt_Sampler2DArrayShadow1_Float3_Float1_4xInt2 = TSymbolUniqueId(1413);
+ static constexpr const TSymbolUniqueId textureGatherOffsets_Sampler2DRect1_Float2_4xInt2 =
+ TSymbolUniqueId(1414);
+ static constexpr const TSymbolUniqueId textureGatherOffsets_ISampler2DRect1_Float2_4xInt2 =
+ TSymbolUniqueId(1415);
+ static constexpr const TSymbolUniqueId textureGatherOffsets_USampler2DRect1_Float2_4xInt2 =
+ TSymbolUniqueId(1416);
+ static constexpr const TSymbolUniqueId
+ textureGatherOffsets_Sampler2DRectShadow1_Float2_Float1_4xInt2 = TSymbolUniqueId(1417);
+ static constexpr const TSymbolUniqueId textureGatherOffsets_Sampler2D1_Float2_4xInt2_Int1 =
+ TSymbolUniqueId(1418);
+ static constexpr const TSymbolUniqueId textureGatherOffsets_ISampler2D1_Float2_4xInt2_Int1 =
+ TSymbolUniqueId(1419);
+ static constexpr const TSymbolUniqueId textureGatherOffsets_USampler2D1_Float2_4xInt2_Int1 =
+ TSymbolUniqueId(1420);
+ static constexpr const TSymbolUniqueId textureGatherOffsets_Sampler2DArray1_Float3_4xInt2_Int1 =
+ TSymbolUniqueId(1421);
+ static constexpr const TSymbolUniqueId
+ textureGatherOffsets_ISampler2DArray1_Float3_4xInt2_Int1 = TSymbolUniqueId(1422);
+ static constexpr const TSymbolUniqueId
+ textureGatherOffsets_USampler2DArray1_Float3_4xInt2_Int1 = TSymbolUniqueId(1423);
+ static constexpr const TSymbolUniqueId textureGatherOffsetsExt_Sampler2D1_Float2_4xInt2_Int1 =
+ TSymbolUniqueId(1424);
+ static constexpr const TSymbolUniqueId textureGatherOffsetsExt_ISampler2D1_Float2_4xInt2_Int1 =
+ TSymbolUniqueId(1425);
+ static constexpr const TSymbolUniqueId textureGatherOffsetsExt_USampler2D1_Float2_4xInt2_Int1 =
+ TSymbolUniqueId(1426);
+ static constexpr const TSymbolUniqueId
+ textureGatherOffsetsExt_Sampler2DArray1_Float3_4xInt2_Int1 = TSymbolUniqueId(1427);
+ static constexpr const TSymbolUniqueId
+ textureGatherOffsetsExt_ISampler2DArray1_Float3_4xInt2_Int1 = TSymbolUniqueId(1428);
+ static constexpr const TSymbolUniqueId
+ textureGatherOffsetsExt_USampler2DArray1_Float3_4xInt2_Int1 = TSymbolUniqueId(1429);
+ static constexpr const TSymbolUniqueId textureGatherOffsets_Sampler2DRect1_Float2_4xInt2_Int1 =
+ TSymbolUniqueId(1430);
+ static constexpr const TSymbolUniqueId textureGatherOffsets_ISampler2DRect1_Float2_4xInt2_Int1 =
+ TSymbolUniqueId(1431);
+ static constexpr const TSymbolUniqueId textureGatherOffsets_USampler2DRect1_Float2_4xInt2_Int1 =
+ TSymbolUniqueId(1432);
+ static constexpr const TSymbolUniqueId rgb_2_yuv_Float3_YuvCscStandardEXT1 =
+ TSymbolUniqueId(1433);
+ static constexpr const TSymbolUniqueId pt00H = TSymbolUniqueId(1434);
+ static constexpr const TSymbolUniqueId yuv_2_rgb_Float3_YuvCscStandardEXT1 =
+ TSymbolUniqueId(1435);
+ static constexpr const TSymbolUniqueId dFdxExt_Float1 = TSymbolUniqueId(1436);
+ static constexpr const TSymbolUniqueId dFdxExt_Float2 = TSymbolUniqueId(1437);
+ static constexpr const TSymbolUniqueId dFdxExt_Float3 = TSymbolUniqueId(1438);
+ static constexpr const TSymbolUniqueId dFdxExt_Float4 = TSymbolUniqueId(1439);
+ static constexpr const TSymbolUniqueId dFdyExt_Float1 = TSymbolUniqueId(1440);
+ static constexpr const TSymbolUniqueId dFdyExt_Float2 = TSymbolUniqueId(1441);
+ static constexpr const TSymbolUniqueId dFdyExt_Float3 = TSymbolUniqueId(1442);
+ static constexpr const TSymbolUniqueId dFdyExt_Float4 = TSymbolUniqueId(1443);
+ static constexpr const TSymbolUniqueId fwidthExt_Float1 = TSymbolUniqueId(1444);
+ static constexpr const TSymbolUniqueId fwidthExt_Float2 = TSymbolUniqueId(1445);
+ static constexpr const TSymbolUniqueId fwidthExt_Float3 = TSymbolUniqueId(1446);
+ static constexpr const TSymbolUniqueId fwidthExt_Float4 = TSymbolUniqueId(1447);
+ static constexpr const TSymbolUniqueId dFdx_Float1 = TSymbolUniqueId(1448);
+ static constexpr const TSymbolUniqueId dFdx_Float2 = TSymbolUniqueId(1449);
+ static constexpr const TSymbolUniqueId dFdx_Float3 = TSymbolUniqueId(1450);
+ static constexpr const TSymbolUniqueId dFdx_Float4 = TSymbolUniqueId(1451);
+ static constexpr const TSymbolUniqueId dFdy_Float1 = TSymbolUniqueId(1452);
+ static constexpr const TSymbolUniqueId dFdy_Float2 = TSymbolUniqueId(1453);
+ static constexpr const TSymbolUniqueId dFdy_Float3 = TSymbolUniqueId(1454);
+ static constexpr const TSymbolUniqueId dFdy_Float4 = TSymbolUniqueId(1455);
+ static constexpr const TSymbolUniqueId fwidth_Float1 = TSymbolUniqueId(1456);
+ static constexpr const TSymbolUniqueId fwidth_Float2 = TSymbolUniqueId(1457);
+ static constexpr const TSymbolUniqueId fwidth_Float3 = TSymbolUniqueId(1458);
+ static constexpr const TSymbolUniqueId fwidth_Float4 = TSymbolUniqueId(1459);
+ static constexpr const TSymbolUniqueId dFdxFine_Float1 = TSymbolUniqueId(1460);
+ static constexpr const TSymbolUniqueId dFdxFine_Float2 = TSymbolUniqueId(1461);
+ static constexpr const TSymbolUniqueId dFdxFine_Float3 = TSymbolUniqueId(1462);
+ static constexpr const TSymbolUniqueId dFdxFine_Float4 = TSymbolUniqueId(1463);
+ static constexpr const TSymbolUniqueId dFdyFine_Float1 = TSymbolUniqueId(1464);
+ static constexpr const TSymbolUniqueId dFdyFine_Float2 = TSymbolUniqueId(1465);
+ static constexpr const TSymbolUniqueId dFdyFine_Float3 = TSymbolUniqueId(1466);
+ static constexpr const TSymbolUniqueId dFdyFine_Float4 = TSymbolUniqueId(1467);
+ static constexpr const TSymbolUniqueId dFdxCoarse_Float1 = TSymbolUniqueId(1468);
+ static constexpr const TSymbolUniqueId dFdxCoarse_Float2 = TSymbolUniqueId(1469);
+ static constexpr const TSymbolUniqueId dFdxCoarse_Float3 = TSymbolUniqueId(1470);
+ static constexpr const TSymbolUniqueId dFdxCoarse_Float4 = TSymbolUniqueId(1471);
+ static constexpr const TSymbolUniqueId dFdyCoarse_Float1 = TSymbolUniqueId(1472);
+ static constexpr const TSymbolUniqueId dFdyCoarse_Float2 = TSymbolUniqueId(1473);
+ static constexpr const TSymbolUniqueId dFdyCoarse_Float3 = TSymbolUniqueId(1474);
+ static constexpr const TSymbolUniqueId dFdyCoarse_Float4 = TSymbolUniqueId(1475);
+ static constexpr const TSymbolUniqueId fwidthFine_Float1 = TSymbolUniqueId(1476);
+ static constexpr const TSymbolUniqueId fwidthFine_Float2 = TSymbolUniqueId(1477);
+ static constexpr const TSymbolUniqueId fwidthFine_Float3 = TSymbolUniqueId(1478);
+ static constexpr const TSymbolUniqueId fwidthFine_Float4 = TSymbolUniqueId(1479);
+ static constexpr const TSymbolUniqueId fwidthCoarse_Float1 = TSymbolUniqueId(1480);
+ static constexpr const TSymbolUniqueId fwidthCoarse_Float2 = TSymbolUniqueId(1481);
+ static constexpr const TSymbolUniqueId fwidthCoarse_Float3 = TSymbolUniqueId(1482);
+ static constexpr const TSymbolUniqueId fwidthCoarse_Float4 = TSymbolUniqueId(1483);
+ static constexpr const TSymbolUniqueId interpolateAtCentroid_Float1 = TSymbolUniqueId(1484);
+ static constexpr const TSymbolUniqueId interpolateAtCentroid_Float2 = TSymbolUniqueId(1485);
+ static constexpr const TSymbolUniqueId interpolateAtCentroid_Float3 = TSymbolUniqueId(1486);
+ static constexpr const TSymbolUniqueId interpolateAtCentroid_Float4 = TSymbolUniqueId(1487);
+ static constexpr const TSymbolUniqueId interpolateAtSample_Float1_Int1 = TSymbolUniqueId(1488);
+ static constexpr const TSymbolUniqueId interpolateAtSample_Float2_Int1 = TSymbolUniqueId(1489);
+ static constexpr const TSymbolUniqueId interpolateAtSample_Float3_Int1 = TSymbolUniqueId(1490);
+ static constexpr const TSymbolUniqueId interpolateAtSample_Float4_Int1 = TSymbolUniqueId(1491);
+ static constexpr const TSymbolUniqueId interpolateAtOffset_Float1_Float2 =
+ TSymbolUniqueId(1492);
+ static constexpr const TSymbolUniqueId interpolateAtOffset_Float2_Float2 =
+ TSymbolUniqueId(1493);
+ static constexpr const TSymbolUniqueId interpolateAtOffset_Float3_Float2 =
+ TSymbolUniqueId(1494);
+ static constexpr const TSymbolUniqueId interpolateAtOffset_Float4_Float2 =
+ TSymbolUniqueId(1495);
+ static constexpr const TSymbolUniqueId interpolateAtCentroidExt_Float1 = TSymbolUniqueId(1496);
+ static constexpr const TSymbolUniqueId interpolateAtCentroidExt_Float2 = TSymbolUniqueId(1497);
+ static constexpr const TSymbolUniqueId interpolateAtCentroidExt_Float3 = TSymbolUniqueId(1498);
+ static constexpr const TSymbolUniqueId interpolateAtCentroidExt_Float4 = TSymbolUniqueId(1499);
+ static constexpr const TSymbolUniqueId interpolateAtSampleExt_Float1_Int1 =
+ TSymbolUniqueId(1500);
+ static constexpr const TSymbolUniqueId interpolateAtSampleExt_Float2_Int1 =
+ TSymbolUniqueId(1501);
+ static constexpr const TSymbolUniqueId interpolateAtSampleExt_Float3_Int1 =
+ TSymbolUniqueId(1502);
+ static constexpr const TSymbolUniqueId interpolateAtSampleExt_Float4_Int1 =
+ TSymbolUniqueId(1503);
+ static constexpr const TSymbolUniqueId interpolateAtOffsetExt_Float1_Float2 =
+ TSymbolUniqueId(1504);
+ static constexpr const TSymbolUniqueId interpolateAtOffsetExt_Float2_Float2 =
+ TSymbolUniqueId(1505);
+ static constexpr const TSymbolUniqueId interpolateAtOffsetExt_Float3_Float2 =
+ TSymbolUniqueId(1506);
+ static constexpr const TSymbolUniqueId interpolateAtOffsetExt_Float4_Float2 =
+ TSymbolUniqueId(1507);
+ static constexpr const TSymbolUniqueId atomicCounter_AtomicCounter1 = TSymbolUniqueId(1508);
+ static constexpr const TSymbolUniqueId pt00G = TSymbolUniqueId(1509);
+ static constexpr const TSymbolUniqueId atomicCounterIncrement_AtomicCounter1 =
+ TSymbolUniqueId(1510);
+ static constexpr const TSymbolUniqueId atomicCounterDecrement_AtomicCounter1 =
+ TSymbolUniqueId(1511);
+ static constexpr const TSymbolUniqueId atomicCounterAdd_AtomicCounter1_UInt1 =
+ TSymbolUniqueId(1512);
+ static constexpr const TSymbolUniqueId atomicCounterSubtract_AtomicCounter1_UInt1 =
+ TSymbolUniqueId(1513);
+ static constexpr const TSymbolUniqueId atomicCounterMin_AtomicCounter1_UInt1 =
+ TSymbolUniqueId(1514);
+ static constexpr const TSymbolUniqueId atomicCounterMax_AtomicCounter1_UInt1 =
+ TSymbolUniqueId(1515);
+ static constexpr const TSymbolUniqueId atomicCounterAnd_AtomicCounter1_UInt1 =
+ TSymbolUniqueId(1516);
+ static constexpr const TSymbolUniqueId atomicCounterOr_AtomicCounter1_UInt1 =
+ TSymbolUniqueId(1517);
+ static constexpr const TSymbolUniqueId atomicCounterXor_AtomicCounter1_UInt1 =
+ TSymbolUniqueId(1518);
+ static constexpr const TSymbolUniqueId atomicCounterExchange_AtomicCounter1_UInt1 =
+ TSymbolUniqueId(1519);
+ static constexpr const TSymbolUniqueId atomicCounterCompSwap_AtomicCounter1_UInt1_UInt1 =
+ TSymbolUniqueId(1520);
+ static constexpr const TSymbolUniqueId atomicAdd_UInt1_UInt1 = TSymbolUniqueId(1521);
+ static constexpr const TSymbolUniqueId pt_io_00E = TSymbolUniqueId(1522);
+ static constexpr const TSymbolUniqueId atomicAdd_Int1_Int1 = TSymbolUniqueId(1523);
+ static constexpr const TSymbolUniqueId pt_io_00D = TSymbolUniqueId(1524);
+ static constexpr const TSymbolUniqueId atomicMin_UInt1_UInt1 = TSymbolUniqueId(1525);
+ static constexpr const TSymbolUniqueId atomicMin_Int1_Int1 = TSymbolUniqueId(1526);
+ static constexpr const TSymbolUniqueId atomicMax_UInt1_UInt1 = TSymbolUniqueId(1527);
+ static constexpr const TSymbolUniqueId atomicMax_Int1_Int1 = TSymbolUniqueId(1528);
+ static constexpr const TSymbolUniqueId atomicAnd_UInt1_UInt1 = TSymbolUniqueId(1529);
+ static constexpr const TSymbolUniqueId atomicAnd_Int1_Int1 = TSymbolUniqueId(1530);
+ static constexpr const TSymbolUniqueId atomicOr_UInt1_UInt1 = TSymbolUniqueId(1531);
+ static constexpr const TSymbolUniqueId atomicOr_Int1_Int1 = TSymbolUniqueId(1532);
+ static constexpr const TSymbolUniqueId atomicXor_UInt1_UInt1 = TSymbolUniqueId(1533);
+ static constexpr const TSymbolUniqueId atomicXor_Int1_Int1 = TSymbolUniqueId(1534);
+ static constexpr const TSymbolUniqueId atomicExchange_UInt1_UInt1 = TSymbolUniqueId(1535);
+ static constexpr const TSymbolUniqueId atomicExchange_Int1_Int1 = TSymbolUniqueId(1536);
+ static constexpr const TSymbolUniqueId atomicCompSwap_UInt1_UInt1_UInt1 = TSymbolUniqueId(1537);
+ static constexpr const TSymbolUniqueId atomicCompSwap_Int1_Int1_Int1 = TSymbolUniqueId(1538);
+ static constexpr const TSymbolUniqueId imageSize_Image2D1 = TSymbolUniqueId(1539);
+ static constexpr const TSymbolUniqueId pt00z = TSymbolUniqueId(1540);
+ static constexpr const TSymbolUniqueId imageSize_IImage2D1 = TSymbolUniqueId(1541);
+ static constexpr const TSymbolUniqueId pt01K = TSymbolUniqueId(1542);
+ static constexpr const TSymbolUniqueId imageSize_UImage2D1 = TSymbolUniqueId(1543);
+ static constexpr const TSymbolUniqueId pt01V = TSymbolUniqueId(1544);
+ static constexpr const TSymbolUniqueId imageSize_Image3D1 = TSymbolUniqueId(1545);
+ static constexpr const TSymbolUniqueId pt01A = TSymbolUniqueId(1546);
+ static constexpr const TSymbolUniqueId imageSize_IImage3D1 = TSymbolUniqueId(1547);
+ static constexpr const TSymbolUniqueId pt01L = TSymbolUniqueId(1548);
+ static constexpr const TSymbolUniqueId imageSize_UImage3D1 = TSymbolUniqueId(1549);
+ static constexpr const TSymbolUniqueId pt01W = TSymbolUniqueId(1550);
+ static constexpr const TSymbolUniqueId imageSize_Image2DArray1 = TSymbolUniqueId(1551);
+ static constexpr const TSymbolUniqueId pt01B = TSymbolUniqueId(1552);
+ static constexpr const TSymbolUniqueId imageSize_IImage2DArray1 = TSymbolUniqueId(1553);
+ static constexpr const TSymbolUniqueId pt01M = TSymbolUniqueId(1554);
+ static constexpr const TSymbolUniqueId imageSize_UImage2DArray1 = TSymbolUniqueId(1555);
+ static constexpr const TSymbolUniqueId pt01X = TSymbolUniqueId(1556);
+ static constexpr const TSymbolUniqueId imageSize_ImageCube1 = TSymbolUniqueId(1557);
+ static constexpr const TSymbolUniqueId pt01C = TSymbolUniqueId(1558);
+ static constexpr const TSymbolUniqueId imageSize_IImageCube1 = TSymbolUniqueId(1559);
+ static constexpr const TSymbolUniqueId pt01N = TSymbolUniqueId(1560);
+ static constexpr const TSymbolUniqueId imageSize_UImageCube1 = TSymbolUniqueId(1561);
+ static constexpr const TSymbolUniqueId pt01Y = TSymbolUniqueId(1562);
+ static constexpr const TSymbolUniqueId imageSize_ImageCubeArray1 = TSymbolUniqueId(1563);
+ static constexpr const TSymbolUniqueId pt01H = TSymbolUniqueId(1564);
+ static constexpr const TSymbolUniqueId imageSize_IImageCubeArray1 = TSymbolUniqueId(1565);
+ static constexpr const TSymbolUniqueId pt01S = TSymbolUniqueId(1566);
+ static constexpr const TSymbolUniqueId imageSize_UImageCubeArray1 = TSymbolUniqueId(1567);
+ static constexpr const TSymbolUniqueId pt01d = TSymbolUniqueId(1568);
+ static constexpr const TSymbolUniqueId imageSizeExt_ImageCubeArray1 = TSymbolUniqueId(1569);
+ static constexpr const TSymbolUniqueId imageSizeExt_IImageCubeArray1 = TSymbolUniqueId(1570);
+ static constexpr const TSymbolUniqueId imageSizeExt_UImageCubeArray1 = TSymbolUniqueId(1571);
+ static constexpr const TSymbolUniqueId imageSize_ImageBuffer1 = TSymbolUniqueId(1572);
+ static constexpr const TSymbolUniqueId pt01J = TSymbolUniqueId(1573);
+ static constexpr const TSymbolUniqueId imageSize_IImageBuffer1 = TSymbolUniqueId(1574);
+ static constexpr const TSymbolUniqueId pt01U = TSymbolUniqueId(1575);
+ static constexpr const TSymbolUniqueId imageSize_UImageBuffer1 = TSymbolUniqueId(1576);
+ static constexpr const TSymbolUniqueId pt01f = TSymbolUniqueId(1577);
+ static constexpr const TSymbolUniqueId imageSizeExt_ImageBuffer1 = TSymbolUniqueId(1578);
+ static constexpr const TSymbolUniqueId imageSizeExt_IImageBuffer1 = TSymbolUniqueId(1579);
+ static constexpr const TSymbolUniqueId imageSizeExt_UImageBuffer1 = TSymbolUniqueId(1580);
+ static constexpr const TSymbolUniqueId imageSize_Image1D1 = TSymbolUniqueId(1581);
+ static constexpr const TSymbolUniqueId pt01D = TSymbolUniqueId(1582);
+ static constexpr const TSymbolUniqueId imageSize_IImage1D1 = TSymbolUniqueId(1583);
+ static constexpr const TSymbolUniqueId pt01O = TSymbolUniqueId(1584);
+ static constexpr const TSymbolUniqueId imageSize_UImage1D1 = TSymbolUniqueId(1585);
+ static constexpr const TSymbolUniqueId pt01Z = TSymbolUniqueId(1586);
+ static constexpr const TSymbolUniqueId imageSize_ImageRect1 = TSymbolUniqueId(1587);
+ static constexpr const TSymbolUniqueId pt01I = TSymbolUniqueId(1588);
+ static constexpr const TSymbolUniqueId imageSize_IImageRect1 = TSymbolUniqueId(1589);
+ static constexpr const TSymbolUniqueId pt01T = TSymbolUniqueId(1590);
+ static constexpr const TSymbolUniqueId imageSize_UImageRect1 = TSymbolUniqueId(1591);
+ static constexpr const TSymbolUniqueId pt01e = TSymbolUniqueId(1592);
+ static constexpr const TSymbolUniqueId imageSize_Image1DArray1 = TSymbolUniqueId(1593);
+ static constexpr const TSymbolUniqueId pt01E = TSymbolUniqueId(1594);
+ static constexpr const TSymbolUniqueId imageSize_IImage1DArray1 = TSymbolUniqueId(1595);
+ static constexpr const TSymbolUniqueId pt01P = TSymbolUniqueId(1596);
+ static constexpr const TSymbolUniqueId imageSize_UImage1DArray1 = TSymbolUniqueId(1597);
+ static constexpr const TSymbolUniqueId pt01a = TSymbolUniqueId(1598);
+ static constexpr const TSymbolUniqueId imageSize_Image2DMS1 = TSymbolUniqueId(1599);
+ static constexpr const TSymbolUniqueId pt01F = TSymbolUniqueId(1600);
+ static constexpr const TSymbolUniqueId imageSize_IImage2DMS1 = TSymbolUniqueId(1601);
+ static constexpr const TSymbolUniqueId pt01Q = TSymbolUniqueId(1602);
+ static constexpr const TSymbolUniqueId imageSize_UImage2DMS1 = TSymbolUniqueId(1603);
+ static constexpr const TSymbolUniqueId pt01b = TSymbolUniqueId(1604);
+ static constexpr const TSymbolUniqueId imageSize_Image2DMSArray1 = TSymbolUniqueId(1605);
+ static constexpr const TSymbolUniqueId pt01G = TSymbolUniqueId(1606);
+ static constexpr const TSymbolUniqueId imageSize_IImage2DMSArray1 = TSymbolUniqueId(1607);
+ static constexpr const TSymbolUniqueId pt01R = TSymbolUniqueId(1608);
+ static constexpr const TSymbolUniqueId imageSize_UImage2DMSArray1 = TSymbolUniqueId(1609);
+ static constexpr const TSymbolUniqueId pt01c = TSymbolUniqueId(1610);
+ static constexpr const TSymbolUniqueId imageSamples_Image2DMS1 = TSymbolUniqueId(1611);
+ static constexpr const TSymbolUniqueId imageSamples_IImage2DMS1 = TSymbolUniqueId(1612);
+ static constexpr const TSymbolUniqueId imageSamples_UImage2DMS1 = TSymbolUniqueId(1613);
+ static constexpr const TSymbolUniqueId imageSamples_Image2DMSArray1 = TSymbolUniqueId(1614);
+ static constexpr const TSymbolUniqueId imageSamples_IImage2DMSArray1 = TSymbolUniqueId(1615);
+ static constexpr const TSymbolUniqueId imageSamples_UImage2DMSArray1 = TSymbolUniqueId(1616);
+ static constexpr const TSymbolUniqueId imageStore_Image2D1_Int2_Float4 = TSymbolUniqueId(1617);
+ static constexpr const TSymbolUniqueId imageStore_IImage2D1_Int2_Int4 = TSymbolUniqueId(1618);
+ static constexpr const TSymbolUniqueId imageStore_UImage2D1_Int2_UInt4 = TSymbolUniqueId(1619);
+ static constexpr const TSymbolUniqueId imageStore_Image3D1_Int3_Float4 = TSymbolUniqueId(1620);
+ static constexpr const TSymbolUniqueId imageStore_IImage3D1_Int3_Int4 = TSymbolUniqueId(1621);
+ static constexpr const TSymbolUniqueId imageStore_UImage3D1_Int3_UInt4 = TSymbolUniqueId(1622);
+ static constexpr const TSymbolUniqueId imageStore_Image2DArray1_Int3_Float4 =
+ TSymbolUniqueId(1623);
+ static constexpr const TSymbolUniqueId imageStore_IImage2DArray1_Int3_Int4 =
+ TSymbolUniqueId(1624);
+ static constexpr const TSymbolUniqueId imageStore_UImage2DArray1_Int3_UInt4 =
+ TSymbolUniqueId(1625);
+ static constexpr const TSymbolUniqueId imageStore_ImageCube1_Int3_Float4 =
+ TSymbolUniqueId(1626);
+ static constexpr const TSymbolUniqueId imageStore_IImageCube1_Int3_Int4 = TSymbolUniqueId(1627);
+ static constexpr const TSymbolUniqueId imageStore_UImageCube1_Int3_UInt4 =
+ TSymbolUniqueId(1628);
+ static constexpr const TSymbolUniqueId imageStore_ImageCubeArray1_Int3_Float4 =
+ TSymbolUniqueId(1629);
+ static constexpr const TSymbolUniqueId imageStore_IImageCubeArray1_Int3_Int4 =
+ TSymbolUniqueId(1630);
+ static constexpr const TSymbolUniqueId imageStore_UImageCubeArray1_Int3_UInt4 =
+ TSymbolUniqueId(1631);
+ static constexpr const TSymbolUniqueId imageStoreExt_ImageCubeArray1_Int3_Float4 =
+ TSymbolUniqueId(1632);
+ static constexpr const TSymbolUniqueId imageStoreExt_IImageCubeArray1_Int3_Int4 =
+ TSymbolUniqueId(1633);
+ static constexpr const TSymbolUniqueId imageStoreExt_UImageCubeArray1_Int3_UInt4 =
+ TSymbolUniqueId(1634);
+ static constexpr const TSymbolUniqueId imageStore_ImageBuffer1_Int1_Float4 =
+ TSymbolUniqueId(1635);
+ static constexpr const TSymbolUniqueId imageStore_IImageBuffer1_Int1_Int4 =
+ TSymbolUniqueId(1636);
+ static constexpr const TSymbolUniqueId imageStore_UImageBuffer1_Int1_UInt4 =
+ TSymbolUniqueId(1637);
+ static constexpr const TSymbolUniqueId imageStoreExt_ImageBuffer1_Int1_Float4 =
+ TSymbolUniqueId(1638);
+ static constexpr const TSymbolUniqueId imageStoreExt_IImageBuffer1_Int1_Int4 =
+ TSymbolUniqueId(1639);
+ static constexpr const TSymbolUniqueId imageStoreExt_UImageBuffer1_Int1_UInt4 =
+ TSymbolUniqueId(1640);
+ static constexpr const TSymbolUniqueId imageStore_Image1D1_Int1_Float4 = TSymbolUniqueId(1641);
+ static constexpr const TSymbolUniqueId imageStore_IImage1D1_Int1_Int4 = TSymbolUniqueId(1642);
+ static constexpr const TSymbolUniqueId imageStore_UImage1D1_Int1_UInt4 = TSymbolUniqueId(1643);
+ static constexpr const TSymbolUniqueId imageStore_Image1DArray1_Int2_Float4 =
+ TSymbolUniqueId(1644);
+ static constexpr const TSymbolUniqueId imageStore_IImage1DArray1_Int2_Int4 =
+ TSymbolUniqueId(1645);
+ static constexpr const TSymbolUniqueId imageStore_UImage1DArray1_Int2_UInt4 =
+ TSymbolUniqueId(1646);
+ static constexpr const TSymbolUniqueId imageStore_ImageRect1_Int2_Float4 =
+ TSymbolUniqueId(1647);
+ static constexpr const TSymbolUniqueId imageStore_IImageRect1_Int2_Int4 = TSymbolUniqueId(1648);
+ static constexpr const TSymbolUniqueId imageStore_UImageRect1_Int2_UInt4 =
+ TSymbolUniqueId(1649);
+ static constexpr const TSymbolUniqueId imageStore_Image2DMS1_Int2_Int1_Float4 =
+ TSymbolUniqueId(1650);
+ static constexpr const TSymbolUniqueId imageStore_IImage2DMS1_Int2_Int1_Int4 =
+ TSymbolUniqueId(1651);
+ static constexpr const TSymbolUniqueId imageStore_UImage2DMS1_Int2_Int1_UInt4 =
+ TSymbolUniqueId(1652);
+ static constexpr const TSymbolUniqueId imageStore_Image2DMSArray1_Int3_Int1_Float4 =
+ TSymbolUniqueId(1653);
+ static constexpr const TSymbolUniqueId imageStore_IImage2DMSArray1_Int3_Int1_Int4 =
+ TSymbolUniqueId(1654);
+ static constexpr const TSymbolUniqueId imageStore_UImage2DMSArray1_Int3_Int1_UInt4 =
+ TSymbolUniqueId(1655);
+ static constexpr const TSymbolUniqueId imageLoad_Image2D1_Int2 = TSymbolUniqueId(1656);
+ static constexpr const TSymbolUniqueId imageLoad_IImage2D1_Int2 = TSymbolUniqueId(1657);
+ static constexpr const TSymbolUniqueId imageLoad_UImage2D1_Int2 = TSymbolUniqueId(1658);
+ static constexpr const TSymbolUniqueId imageLoad_Image3D1_Int3 = TSymbolUniqueId(1659);
+ static constexpr const TSymbolUniqueId imageLoad_IImage3D1_Int3 = TSymbolUniqueId(1660);
+ static constexpr const TSymbolUniqueId imageLoad_UImage3D1_Int3 = TSymbolUniqueId(1661);
+ static constexpr const TSymbolUniqueId imageLoad_Image2DArray1_Int3 = TSymbolUniqueId(1662);
+ static constexpr const TSymbolUniqueId imageLoad_IImage2DArray1_Int3 = TSymbolUniqueId(1663);
+ static constexpr const TSymbolUniqueId imageLoad_UImage2DArray1_Int3 = TSymbolUniqueId(1664);
+ static constexpr const TSymbolUniqueId imageLoad_ImageCube1_Int3 = TSymbolUniqueId(1665);
+ static constexpr const TSymbolUniqueId imageLoad_IImageCube1_Int3 = TSymbolUniqueId(1666);
+ static constexpr const TSymbolUniqueId imageLoad_UImageCube1_Int3 = TSymbolUniqueId(1667);
+ static constexpr const TSymbolUniqueId imageLoad_ImageCubeArray1_Int3 = TSymbolUniqueId(1668);
+ static constexpr const TSymbolUniqueId imageLoad_IImageCubeArray1_Int3 = TSymbolUniqueId(1669);
+ static constexpr const TSymbolUniqueId imageLoad_UImageCubeArray1_Int3 = TSymbolUniqueId(1670);
+ static constexpr const TSymbolUniqueId imageLoadExt_ImageCubeArray1_Int3 =
+ TSymbolUniqueId(1671);
+ static constexpr const TSymbolUniqueId imageLoadExt_IImageCubeArray1_Int3 =
+ TSymbolUniqueId(1672);
+ static constexpr const TSymbolUniqueId imageLoadExt_UImageCubeArray1_Int3 =
+ TSymbolUniqueId(1673);
+ static constexpr const TSymbolUniqueId imageLoad_ImageBuffer1_Int1 = TSymbolUniqueId(1674);
+ static constexpr const TSymbolUniqueId imageLoad_IImageBuffer1_Int1 = TSymbolUniqueId(1675);
+ static constexpr const TSymbolUniqueId imageLoad_UImageBuffer1_Int1 = TSymbolUniqueId(1676);
+ static constexpr const TSymbolUniqueId imageLoadExt_ImageBuffer1_Int1 = TSymbolUniqueId(1677);
+ static constexpr const TSymbolUniqueId imageLoadExt_IImageBuffer1_Int1 = TSymbolUniqueId(1678);
+ static constexpr const TSymbolUniqueId imageLoadExt_UImageBuffer1_Int1 = TSymbolUniqueId(1679);
+ static constexpr const TSymbolUniqueId imageLoad_Image1D1_Int1 = TSymbolUniqueId(1680);
+ static constexpr const TSymbolUniqueId imageLoad_IImage1D1_Int1 = TSymbolUniqueId(1681);
+ static constexpr const TSymbolUniqueId imageLoad_UImage1D1_Int1 = TSymbolUniqueId(1682);
+ static constexpr const TSymbolUniqueId imageLoad_Image1DArray1_Int2 = TSymbolUniqueId(1683);
+ static constexpr const TSymbolUniqueId imageLoad_IImage1DArray1_Int2 = TSymbolUniqueId(1684);
+ static constexpr const TSymbolUniqueId imageLoad_UImage1DArray1_Int2 = TSymbolUniqueId(1685);
+ static constexpr const TSymbolUniqueId imageLoad_ImageRect1_Int2 = TSymbolUniqueId(1686);
+ static constexpr const TSymbolUniqueId imageLoad_IImageRect1_Int2 = TSymbolUniqueId(1687);
+ static constexpr const TSymbolUniqueId imageLoad_UImageRect1_Int2 = TSymbolUniqueId(1688);
+ static constexpr const TSymbolUniqueId imageLoad_Image2DMS1_Int2_Int1 = TSymbolUniqueId(1689);
+ static constexpr const TSymbolUniqueId imageLoad_IImage2DMS1_Int2_Int1 = TSymbolUniqueId(1690);
+ static constexpr const TSymbolUniqueId imageLoad_UImage2DMS1_Int2_Int1 = TSymbolUniqueId(1691);
+ static constexpr const TSymbolUniqueId imageLoad_Image2DMSArray1_Int3_Int1 =
+ TSymbolUniqueId(1692);
+ static constexpr const TSymbolUniqueId imageLoad_IImage2DMSArray1_Int3_Int1 =
+ TSymbolUniqueId(1693);
+ static constexpr const TSymbolUniqueId imageLoad_UImage2DMSArray1_Int3_Int1 =
+ TSymbolUniqueId(1694);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_Image2D1_Int2_UInt1 =
+ TSymbolUniqueId(1695);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_IImage2D1_Int2_UInt1 =
+ TSymbolUniqueId(1696);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_UImage2D1_Int2_UInt1 =
+ TSymbolUniqueId(1697);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_Image3D1_Int3_UInt1 =
+ TSymbolUniqueId(1698);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_IImage3D1_Int3_UInt1 =
+ TSymbolUniqueId(1699);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_UImage3D1_Int3_UInt1 =
+ TSymbolUniqueId(1700);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_ImageCube1_Int3_UInt1 =
+ TSymbolUniqueId(1701);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_IImageCube1_Int3_UInt1 =
+ TSymbolUniqueId(1702);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_UImageCube1_Int3_UInt1 =
+ TSymbolUniqueId(1703);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_ImageBuffer1_Int1_UInt1 =
+ TSymbolUniqueId(1704);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_IImageBuffer1_Int1_UInt1 =
+ TSymbolUniqueId(1705);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_UImageBuffer1_Int1_UInt1 =
+ TSymbolUniqueId(1706);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_Image2DArray1_Int3_UInt1 =
+ TSymbolUniqueId(1707);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_IImage2DArray1_Int3_UInt1 =
+ TSymbolUniqueId(1708);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_UImage2DArray1_Int3_UInt1 =
+ TSymbolUniqueId(1709);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_ImageCubeArray1_Int3_UInt1 =
+ TSymbolUniqueId(1710);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_IImageCubeArray1_Int3_UInt1 =
+ TSymbolUniqueId(1711);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_UImageCubeArray1_Int3_UInt1 =
+ TSymbolUniqueId(1712);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_Image1D1_Int1_UInt1 =
+ TSymbolUniqueId(1713);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_IImage1D1_Int1_UInt1 =
+ TSymbolUniqueId(1714);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_UImage1D1_Int1_UInt1 =
+ TSymbolUniqueId(1715);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_Image1DArray1_Int2_UInt1 =
+ TSymbolUniqueId(1716);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_IImage1DArray1_Int2_UInt1 =
+ TSymbolUniqueId(1717);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_UImage1DArray1_Int2_UInt1 =
+ TSymbolUniqueId(1718);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_ImageRect1_Int2_UInt1 =
+ TSymbolUniqueId(1719);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_IImageRect1_Int2_UInt1 =
+ TSymbolUniqueId(1720);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_UImageRect1_Int2_UInt1 =
+ TSymbolUniqueId(1721);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_Image2DMS1_Int2_Int1_UInt1 =
+ TSymbolUniqueId(1722);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_IImage2DMS1_Int2_Int1_UInt1 =
+ TSymbolUniqueId(1723);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_UImage2DMS1_Int2_Int1_UInt1 =
+ TSymbolUniqueId(1724);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_Image2DMSArray1_Int3_Int1_UInt1 =
+ TSymbolUniqueId(1725);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_IImage2DMSArray1_Int3_Int1_UInt1 =
+ TSymbolUniqueId(1726);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_UImage2DMSArray1_Int3_Int1_UInt1 =
+ TSymbolUniqueId(1727);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_Image2D1_Int2_Int1 =
+ TSymbolUniqueId(1728);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_IImage2D1_Int2_Int1 =
+ TSymbolUniqueId(1729);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_UImage2D1_Int2_Int1 =
+ TSymbolUniqueId(1730);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_Image3D1_Int3_Int1 =
+ TSymbolUniqueId(1731);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_IImage3D1_Int3_Int1 =
+ TSymbolUniqueId(1732);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_UImage3D1_Int3_Int1 =
+ TSymbolUniqueId(1733);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_ImageCube1_Int3_Int1 =
+ TSymbolUniqueId(1734);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_IImageCube1_Int3_Int1 =
+ TSymbolUniqueId(1735);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_UImageCube1_Int3_Int1 =
+ TSymbolUniqueId(1736);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_ImageBuffer1_Int1_Int1 =
+ TSymbolUniqueId(1737);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_IImageBuffer1_Int1_Int1 =
+ TSymbolUniqueId(1738);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_UImageBuffer1_Int1_Int1 =
+ TSymbolUniqueId(1739);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_Image2DArray1_Int3_Int1 =
+ TSymbolUniqueId(1740);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_IImage2DArray1_Int3_Int1 =
+ TSymbolUniqueId(1741);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_UImage2DArray1_Int3_Int1 =
+ TSymbolUniqueId(1742);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_ImageCubeArray1_Int3_Int1 =
+ TSymbolUniqueId(1743);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_IImageCubeArray1_Int3_Int1 =
+ TSymbolUniqueId(1744);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_UImageCubeArray1_Int3_Int1 =
+ TSymbolUniqueId(1745);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_Image1D1_Int1_Int1 =
+ TSymbolUniqueId(1746);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_IImage1D1_Int1_Int1 =
+ TSymbolUniqueId(1747);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_UImage1D1_Int1_Int1 =
+ TSymbolUniqueId(1748);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_Image1DArray1_Int2_Int1 =
+ TSymbolUniqueId(1749);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_IImage1DArray1_Int2_Int1 =
+ TSymbolUniqueId(1750);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_UImage1DArray1_Int2_Int1 =
+ TSymbolUniqueId(1751);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_ImageRect1_Int2_Int1 =
+ TSymbolUniqueId(1752);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_IImageRect1_Int2_Int1 =
+ TSymbolUniqueId(1753);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_UImageRect1_Int2_Int1 =
+ TSymbolUniqueId(1754);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_Image2DMS1_Int2_Int1_Int1 =
+ TSymbolUniqueId(1755);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_IImage2DMS1_Int2_Int1_Int1 =
+ TSymbolUniqueId(1756);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_UImage2DMS1_Int2_Int1_Int1 =
+ TSymbolUniqueId(1757);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_Image2DMSArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(1758);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_IImage2DMSArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(1759);
+ static constexpr const TSymbolUniqueId imageAtomicAdd_UImage2DMSArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(1760);
+ static constexpr const TSymbolUniqueId imageAtomicMin_Image2D1_Int2_UInt1 =
+ TSymbolUniqueId(1761);
+ static constexpr const TSymbolUniqueId imageAtomicMin_IImage2D1_Int2_UInt1 =
+ TSymbolUniqueId(1762);
+ static constexpr const TSymbolUniqueId imageAtomicMin_UImage2D1_Int2_UInt1 =
+ TSymbolUniqueId(1763);
+ static constexpr const TSymbolUniqueId imageAtomicMin_Image3D1_Int3_UInt1 =
+ TSymbolUniqueId(1764);
+ static constexpr const TSymbolUniqueId imageAtomicMin_IImage3D1_Int3_UInt1 =
+ TSymbolUniqueId(1765);
+ static constexpr const TSymbolUniqueId imageAtomicMin_UImage3D1_Int3_UInt1 =
+ TSymbolUniqueId(1766);
+ static constexpr const TSymbolUniqueId imageAtomicMin_ImageCube1_Int3_UInt1 =
+ TSymbolUniqueId(1767);
+ static constexpr const TSymbolUniqueId imageAtomicMin_IImageCube1_Int3_UInt1 =
+ TSymbolUniqueId(1768);
+ static constexpr const TSymbolUniqueId imageAtomicMin_UImageCube1_Int3_UInt1 =
+ TSymbolUniqueId(1769);
+ static constexpr const TSymbolUniqueId imageAtomicMin_ImageBuffer1_Int1_UInt1 =
+ TSymbolUniqueId(1770);
+ static constexpr const TSymbolUniqueId imageAtomicMin_IImageBuffer1_Int1_UInt1 =
+ TSymbolUniqueId(1771);
+ static constexpr const TSymbolUniqueId imageAtomicMin_UImageBuffer1_Int1_UInt1 =
+ TSymbolUniqueId(1772);
+ static constexpr const TSymbolUniqueId imageAtomicMin_Image2DArray1_Int3_UInt1 =
+ TSymbolUniqueId(1773);
+ static constexpr const TSymbolUniqueId imageAtomicMin_IImage2DArray1_Int3_UInt1 =
+ TSymbolUniqueId(1774);
+ static constexpr const TSymbolUniqueId imageAtomicMin_UImage2DArray1_Int3_UInt1 =
+ TSymbolUniqueId(1775);
+ static constexpr const TSymbolUniqueId imageAtomicMin_ImageCubeArray1_Int3_UInt1 =
+ TSymbolUniqueId(1776);
+ static constexpr const TSymbolUniqueId imageAtomicMin_IImageCubeArray1_Int3_UInt1 =
+ TSymbolUniqueId(1777);
+ static constexpr const TSymbolUniqueId imageAtomicMin_UImageCubeArray1_Int3_UInt1 =
+ TSymbolUniqueId(1778);
+ static constexpr const TSymbolUniqueId imageAtomicMin_Image1D1_Int1_UInt1 =
+ TSymbolUniqueId(1779);
+ static constexpr const TSymbolUniqueId imageAtomicMin_IImage1D1_Int1_UInt1 =
+ TSymbolUniqueId(1780);
+ static constexpr const TSymbolUniqueId imageAtomicMin_UImage1D1_Int1_UInt1 =
+ TSymbolUniqueId(1781);
+ static constexpr const TSymbolUniqueId imageAtomicMin_Image1DArray1_Int2_UInt1 =
+ TSymbolUniqueId(1782);
+ static constexpr const TSymbolUniqueId imageAtomicMin_IImage1DArray1_Int2_UInt1 =
+ TSymbolUniqueId(1783);
+ static constexpr const TSymbolUniqueId imageAtomicMin_UImage1DArray1_Int2_UInt1 =
+ TSymbolUniqueId(1784);
+ static constexpr const TSymbolUniqueId imageAtomicMin_ImageRect1_Int2_UInt1 =
+ TSymbolUniqueId(1785);
+ static constexpr const TSymbolUniqueId imageAtomicMin_IImageRect1_Int2_UInt1 =
+ TSymbolUniqueId(1786);
+ static constexpr const TSymbolUniqueId imageAtomicMin_UImageRect1_Int2_UInt1 =
+ TSymbolUniqueId(1787);
+ static constexpr const TSymbolUniqueId imageAtomicMin_Image2DMS1_Int2_Int1_UInt1 =
+ TSymbolUniqueId(1788);
+ static constexpr const TSymbolUniqueId imageAtomicMin_IImage2DMS1_Int2_Int1_UInt1 =
+ TSymbolUniqueId(1789);
+ static constexpr const TSymbolUniqueId imageAtomicMin_UImage2DMS1_Int2_Int1_UInt1 =
+ TSymbolUniqueId(1790);
+ static constexpr const TSymbolUniqueId imageAtomicMin_Image2DMSArray1_Int3_Int1_UInt1 =
+ TSymbolUniqueId(1791);
+ static constexpr const TSymbolUniqueId imageAtomicMin_IImage2DMSArray1_Int3_Int1_UInt1 =
+ TSymbolUniqueId(1792);
+ static constexpr const TSymbolUniqueId imageAtomicMin_UImage2DMSArray1_Int3_Int1_UInt1 =
+ TSymbolUniqueId(1793);
+ static constexpr const TSymbolUniqueId imageAtomicMin_Image2D1_Int2_Int1 =
+ TSymbolUniqueId(1794);
+ static constexpr const TSymbolUniqueId imageAtomicMin_IImage2D1_Int2_Int1 =
+ TSymbolUniqueId(1795);
+ static constexpr const TSymbolUniqueId imageAtomicMin_UImage2D1_Int2_Int1 =
+ TSymbolUniqueId(1796);
+ static constexpr const TSymbolUniqueId imageAtomicMin_Image3D1_Int3_Int1 =
+ TSymbolUniqueId(1797);
+ static constexpr const TSymbolUniqueId imageAtomicMin_IImage3D1_Int3_Int1 =
+ TSymbolUniqueId(1798);
+ static constexpr const TSymbolUniqueId imageAtomicMin_UImage3D1_Int3_Int1 =
+ TSymbolUniqueId(1799);
+ static constexpr const TSymbolUniqueId imageAtomicMin_ImageCube1_Int3_Int1 =
+ TSymbolUniqueId(1800);
+ static constexpr const TSymbolUniqueId imageAtomicMin_IImageCube1_Int3_Int1 =
+ TSymbolUniqueId(1801);
+ static constexpr const TSymbolUniqueId imageAtomicMin_UImageCube1_Int3_Int1 =
+ TSymbolUniqueId(1802);
+ static constexpr const TSymbolUniqueId imageAtomicMin_ImageBuffer1_Int1_Int1 =
+ TSymbolUniqueId(1803);
+ static constexpr const TSymbolUniqueId imageAtomicMin_IImageBuffer1_Int1_Int1 =
+ TSymbolUniqueId(1804);
+ static constexpr const TSymbolUniqueId imageAtomicMin_UImageBuffer1_Int1_Int1 =
+ TSymbolUniqueId(1805);
+ static constexpr const TSymbolUniqueId imageAtomicMin_Image2DArray1_Int3_Int1 =
+ TSymbolUniqueId(1806);
+ static constexpr const TSymbolUniqueId imageAtomicMin_IImage2DArray1_Int3_Int1 =
+ TSymbolUniqueId(1807);
+ static constexpr const TSymbolUniqueId imageAtomicMin_UImage2DArray1_Int3_Int1 =
+ TSymbolUniqueId(1808);
+ static constexpr const TSymbolUniqueId imageAtomicMin_ImageCubeArray1_Int3_Int1 =
+ TSymbolUniqueId(1809);
+ static constexpr const TSymbolUniqueId imageAtomicMin_IImageCubeArray1_Int3_Int1 =
+ TSymbolUniqueId(1810);
+ static constexpr const TSymbolUniqueId imageAtomicMin_UImageCubeArray1_Int3_Int1 =
+ TSymbolUniqueId(1811);
+ static constexpr const TSymbolUniqueId imageAtomicMin_Image1D1_Int1_Int1 =
+ TSymbolUniqueId(1812);
+ static constexpr const TSymbolUniqueId imageAtomicMin_IImage1D1_Int1_Int1 =
+ TSymbolUniqueId(1813);
+ static constexpr const TSymbolUniqueId imageAtomicMin_UImage1D1_Int1_Int1 =
+ TSymbolUniqueId(1814);
+ static constexpr const TSymbolUniqueId imageAtomicMin_Image1DArray1_Int2_Int1 =
+ TSymbolUniqueId(1815);
+ static constexpr const TSymbolUniqueId imageAtomicMin_IImage1DArray1_Int2_Int1 =
+ TSymbolUniqueId(1816);
+ static constexpr const TSymbolUniqueId imageAtomicMin_UImage1DArray1_Int2_Int1 =
+ TSymbolUniqueId(1817);
+ static constexpr const TSymbolUniqueId imageAtomicMin_ImageRect1_Int2_Int1 =
+ TSymbolUniqueId(1818);
+ static constexpr const TSymbolUniqueId imageAtomicMin_IImageRect1_Int2_Int1 =
+ TSymbolUniqueId(1819);
+ static constexpr const TSymbolUniqueId imageAtomicMin_UImageRect1_Int2_Int1 =
+ TSymbolUniqueId(1820);
+ static constexpr const TSymbolUniqueId imageAtomicMin_Image2DMS1_Int2_Int1_Int1 =
+ TSymbolUniqueId(1821);
+ static constexpr const TSymbolUniqueId imageAtomicMin_IImage2DMS1_Int2_Int1_Int1 =
+ TSymbolUniqueId(1822);
+ static constexpr const TSymbolUniqueId imageAtomicMin_UImage2DMS1_Int2_Int1_Int1 =
+ TSymbolUniqueId(1823);
+ static constexpr const TSymbolUniqueId imageAtomicMin_Image2DMSArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(1824);
+ static constexpr const TSymbolUniqueId imageAtomicMin_IImage2DMSArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(1825);
+ static constexpr const TSymbolUniqueId imageAtomicMin_UImage2DMSArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(1826);
+ static constexpr const TSymbolUniqueId imageAtomicMax_Image2D1_Int2_UInt1 =
+ TSymbolUniqueId(1827);
+ static constexpr const TSymbolUniqueId imageAtomicMax_IImage2D1_Int2_UInt1 =
+ TSymbolUniqueId(1828);
+ static constexpr const TSymbolUniqueId imageAtomicMax_UImage2D1_Int2_UInt1 =
+ TSymbolUniqueId(1829);
+ static constexpr const TSymbolUniqueId imageAtomicMax_Image3D1_Int3_UInt1 =
+ TSymbolUniqueId(1830);
+ static constexpr const TSymbolUniqueId imageAtomicMax_IImage3D1_Int3_UInt1 =
+ TSymbolUniqueId(1831);
+ static constexpr const TSymbolUniqueId imageAtomicMax_UImage3D1_Int3_UInt1 =
+ TSymbolUniqueId(1832);
+ static constexpr const TSymbolUniqueId imageAtomicMax_ImageCube1_Int3_UInt1 =
+ TSymbolUniqueId(1833);
+ static constexpr const TSymbolUniqueId imageAtomicMax_IImageCube1_Int3_UInt1 =
+ TSymbolUniqueId(1834);
+ static constexpr const TSymbolUniqueId imageAtomicMax_UImageCube1_Int3_UInt1 =
+ TSymbolUniqueId(1835);
+ static constexpr const TSymbolUniqueId imageAtomicMax_ImageBuffer1_Int1_UInt1 =
+ TSymbolUniqueId(1836);
+ static constexpr const TSymbolUniqueId imageAtomicMax_IImageBuffer1_Int1_UInt1 =
+ TSymbolUniqueId(1837);
+ static constexpr const TSymbolUniqueId imageAtomicMax_UImageBuffer1_Int1_UInt1 =
+ TSymbolUniqueId(1838);
+ static constexpr const TSymbolUniqueId imageAtomicMax_Image2DArray1_Int3_UInt1 =
+ TSymbolUniqueId(1839);
+ static constexpr const TSymbolUniqueId imageAtomicMax_IImage2DArray1_Int3_UInt1 =
+ TSymbolUniqueId(1840);
+ static constexpr const TSymbolUniqueId imageAtomicMax_UImage2DArray1_Int3_UInt1 =
+ TSymbolUniqueId(1841);
+ static constexpr const TSymbolUniqueId imageAtomicMax_ImageCubeArray1_Int3_UInt1 =
+ TSymbolUniqueId(1842);
+ static constexpr const TSymbolUniqueId imageAtomicMax_IImageCubeArray1_Int3_UInt1 =
+ TSymbolUniqueId(1843);
+ static constexpr const TSymbolUniqueId imageAtomicMax_UImageCubeArray1_Int3_UInt1 =
+ TSymbolUniqueId(1844);
+ static constexpr const TSymbolUniqueId imageAtomicMax_Image1D1_Int1_UInt1 =
+ TSymbolUniqueId(1845);
+ static constexpr const TSymbolUniqueId imageAtomicMax_IImage1D1_Int1_UInt1 =
+ TSymbolUniqueId(1846);
+ static constexpr const TSymbolUniqueId imageAtomicMax_UImage1D1_Int1_UInt1 =
+ TSymbolUniqueId(1847);
+ static constexpr const TSymbolUniqueId imageAtomicMax_Image1DArray1_Int2_UInt1 =
+ TSymbolUniqueId(1848);
+ static constexpr const TSymbolUniqueId imageAtomicMax_IImage1DArray1_Int2_UInt1 =
+ TSymbolUniqueId(1849);
+ static constexpr const TSymbolUniqueId imageAtomicMax_UImage1DArray1_Int2_UInt1 =
+ TSymbolUniqueId(1850);
+ static constexpr const TSymbolUniqueId imageAtomicMax_ImageRect1_Int2_UInt1 =
+ TSymbolUniqueId(1851);
+ static constexpr const TSymbolUniqueId imageAtomicMax_IImageRect1_Int2_UInt1 =
+ TSymbolUniqueId(1852);
+ static constexpr const TSymbolUniqueId imageAtomicMax_UImageRect1_Int2_UInt1 =
+ TSymbolUniqueId(1853);
+ static constexpr const TSymbolUniqueId imageAtomicMax_Image2DMS1_Int2_Int1_UInt1 =
+ TSymbolUniqueId(1854);
+ static constexpr const TSymbolUniqueId imageAtomicMax_IImage2DMS1_Int2_Int1_UInt1 =
+ TSymbolUniqueId(1855);
+ static constexpr const TSymbolUniqueId imageAtomicMax_UImage2DMS1_Int2_Int1_UInt1 =
+ TSymbolUniqueId(1856);
+ static constexpr const TSymbolUniqueId imageAtomicMax_Image2DMSArray1_Int3_Int1_UInt1 =
+ TSymbolUniqueId(1857);
+ static constexpr const TSymbolUniqueId imageAtomicMax_IImage2DMSArray1_Int3_Int1_UInt1 =
+ TSymbolUniqueId(1858);
+ static constexpr const TSymbolUniqueId imageAtomicMax_UImage2DMSArray1_Int3_Int1_UInt1 =
+ TSymbolUniqueId(1859);
+ static constexpr const TSymbolUniqueId imageAtomicMax_Image2D1_Int2_Int1 =
+ TSymbolUniqueId(1860);
+ static constexpr const TSymbolUniqueId imageAtomicMax_IImage2D1_Int2_Int1 =
+ TSymbolUniqueId(1861);
+ static constexpr const TSymbolUniqueId imageAtomicMax_UImage2D1_Int2_Int1 =
+ TSymbolUniqueId(1862);
+ static constexpr const TSymbolUniqueId imageAtomicMax_Image3D1_Int3_Int1 =
+ TSymbolUniqueId(1863);
+ static constexpr const TSymbolUniqueId imageAtomicMax_IImage3D1_Int3_Int1 =
+ TSymbolUniqueId(1864);
+ static constexpr const TSymbolUniqueId imageAtomicMax_UImage3D1_Int3_Int1 =
+ TSymbolUniqueId(1865);
+ static constexpr const TSymbolUniqueId imageAtomicMax_ImageCube1_Int3_Int1 =
+ TSymbolUniqueId(1866);
+ static constexpr const TSymbolUniqueId imageAtomicMax_IImageCube1_Int3_Int1 =
+ TSymbolUniqueId(1867);
+ static constexpr const TSymbolUniqueId imageAtomicMax_UImageCube1_Int3_Int1 =
+ TSymbolUniqueId(1868);
+ static constexpr const TSymbolUniqueId imageAtomicMax_ImageBuffer1_Int1_Int1 =
+ TSymbolUniqueId(1869);
+ static constexpr const TSymbolUniqueId imageAtomicMax_IImageBuffer1_Int1_Int1 =
+ TSymbolUniqueId(1870);
+ static constexpr const TSymbolUniqueId imageAtomicMax_UImageBuffer1_Int1_Int1 =
+ TSymbolUniqueId(1871);
+ static constexpr const TSymbolUniqueId imageAtomicMax_Image2DArray1_Int3_Int1 =
+ TSymbolUniqueId(1872);
+ static constexpr const TSymbolUniqueId imageAtomicMax_IImage2DArray1_Int3_Int1 =
+ TSymbolUniqueId(1873);
+ static constexpr const TSymbolUniqueId imageAtomicMax_UImage2DArray1_Int3_Int1 =
+ TSymbolUniqueId(1874);
+ static constexpr const TSymbolUniqueId imageAtomicMax_ImageCubeArray1_Int3_Int1 =
+ TSymbolUniqueId(1875);
+ static constexpr const TSymbolUniqueId imageAtomicMax_IImageCubeArray1_Int3_Int1 =
+ TSymbolUniqueId(1876);
+ static constexpr const TSymbolUniqueId imageAtomicMax_UImageCubeArray1_Int3_Int1 =
+ TSymbolUniqueId(1877);
+ static constexpr const TSymbolUniqueId imageAtomicMax_Image1D1_Int1_Int1 =
+ TSymbolUniqueId(1878);
+ static constexpr const TSymbolUniqueId imageAtomicMax_IImage1D1_Int1_Int1 =
+ TSymbolUniqueId(1879);
+ static constexpr const TSymbolUniqueId imageAtomicMax_UImage1D1_Int1_Int1 =
+ TSymbolUniqueId(1880);
+ static constexpr const TSymbolUniqueId imageAtomicMax_Image1DArray1_Int2_Int1 =
+ TSymbolUniqueId(1881);
+ static constexpr const TSymbolUniqueId imageAtomicMax_IImage1DArray1_Int2_Int1 =
+ TSymbolUniqueId(1882);
+ static constexpr const TSymbolUniqueId imageAtomicMax_UImage1DArray1_Int2_Int1 =
+ TSymbolUniqueId(1883);
+ static constexpr const TSymbolUniqueId imageAtomicMax_ImageRect1_Int2_Int1 =
+ TSymbolUniqueId(1884);
+ static constexpr const TSymbolUniqueId imageAtomicMax_IImageRect1_Int2_Int1 =
+ TSymbolUniqueId(1885);
+ static constexpr const TSymbolUniqueId imageAtomicMax_UImageRect1_Int2_Int1 =
+ TSymbolUniqueId(1886);
+ static constexpr const TSymbolUniqueId imageAtomicMax_Image2DMS1_Int2_Int1_Int1 =
+ TSymbolUniqueId(1887);
+ static constexpr const TSymbolUniqueId imageAtomicMax_IImage2DMS1_Int2_Int1_Int1 =
+ TSymbolUniqueId(1888);
+ static constexpr const TSymbolUniqueId imageAtomicMax_UImage2DMS1_Int2_Int1_Int1 =
+ TSymbolUniqueId(1889);
+ static constexpr const TSymbolUniqueId imageAtomicMax_Image2DMSArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(1890);
+ static constexpr const TSymbolUniqueId imageAtomicMax_IImage2DMSArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(1891);
+ static constexpr const TSymbolUniqueId imageAtomicMax_UImage2DMSArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(1892);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_Image2D1_Int2_UInt1 =
+ TSymbolUniqueId(1893);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_IImage2D1_Int2_UInt1 =
+ TSymbolUniqueId(1894);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_UImage2D1_Int2_UInt1 =
+ TSymbolUniqueId(1895);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_Image3D1_Int3_UInt1 =
+ TSymbolUniqueId(1896);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_IImage3D1_Int3_UInt1 =
+ TSymbolUniqueId(1897);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_UImage3D1_Int3_UInt1 =
+ TSymbolUniqueId(1898);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_ImageCube1_Int3_UInt1 =
+ TSymbolUniqueId(1899);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_IImageCube1_Int3_UInt1 =
+ TSymbolUniqueId(1900);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_UImageCube1_Int3_UInt1 =
+ TSymbolUniqueId(1901);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_ImageBuffer1_Int1_UInt1 =
+ TSymbolUniqueId(1902);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_IImageBuffer1_Int1_UInt1 =
+ TSymbolUniqueId(1903);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_UImageBuffer1_Int1_UInt1 =
+ TSymbolUniqueId(1904);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_Image2DArray1_Int3_UInt1 =
+ TSymbolUniqueId(1905);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_IImage2DArray1_Int3_UInt1 =
+ TSymbolUniqueId(1906);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_UImage2DArray1_Int3_UInt1 =
+ TSymbolUniqueId(1907);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_ImageCubeArray1_Int3_UInt1 =
+ TSymbolUniqueId(1908);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_IImageCubeArray1_Int3_UInt1 =
+ TSymbolUniqueId(1909);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_UImageCubeArray1_Int3_UInt1 =
+ TSymbolUniqueId(1910);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_Image1D1_Int1_UInt1 =
+ TSymbolUniqueId(1911);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_IImage1D1_Int1_UInt1 =
+ TSymbolUniqueId(1912);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_UImage1D1_Int1_UInt1 =
+ TSymbolUniqueId(1913);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_Image1DArray1_Int2_UInt1 =
+ TSymbolUniqueId(1914);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_IImage1DArray1_Int2_UInt1 =
+ TSymbolUniqueId(1915);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_UImage1DArray1_Int2_UInt1 =
+ TSymbolUniqueId(1916);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_ImageRect1_Int2_UInt1 =
+ TSymbolUniqueId(1917);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_IImageRect1_Int2_UInt1 =
+ TSymbolUniqueId(1918);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_UImageRect1_Int2_UInt1 =
+ TSymbolUniqueId(1919);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_Image2DMS1_Int2_Int1_UInt1 =
+ TSymbolUniqueId(1920);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_IImage2DMS1_Int2_Int1_UInt1 =
+ TSymbolUniqueId(1921);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_UImage2DMS1_Int2_Int1_UInt1 =
+ TSymbolUniqueId(1922);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_Image2DMSArray1_Int3_Int1_UInt1 =
+ TSymbolUniqueId(1923);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_IImage2DMSArray1_Int3_Int1_UInt1 =
+ TSymbolUniqueId(1924);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_UImage2DMSArray1_Int3_Int1_UInt1 =
+ TSymbolUniqueId(1925);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_Image2D1_Int2_Int1 =
+ TSymbolUniqueId(1926);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_IImage2D1_Int2_Int1 =
+ TSymbolUniqueId(1927);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_UImage2D1_Int2_Int1 =
+ TSymbolUniqueId(1928);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_Image3D1_Int3_Int1 =
+ TSymbolUniqueId(1929);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_IImage3D1_Int3_Int1 =
+ TSymbolUniqueId(1930);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_UImage3D1_Int3_Int1 =
+ TSymbolUniqueId(1931);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_ImageCube1_Int3_Int1 =
+ TSymbolUniqueId(1932);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_IImageCube1_Int3_Int1 =
+ TSymbolUniqueId(1933);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_UImageCube1_Int3_Int1 =
+ TSymbolUniqueId(1934);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_ImageBuffer1_Int1_Int1 =
+ TSymbolUniqueId(1935);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_IImageBuffer1_Int1_Int1 =
+ TSymbolUniqueId(1936);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_UImageBuffer1_Int1_Int1 =
+ TSymbolUniqueId(1937);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_Image2DArray1_Int3_Int1 =
+ TSymbolUniqueId(1938);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_IImage2DArray1_Int3_Int1 =
+ TSymbolUniqueId(1939);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_UImage2DArray1_Int3_Int1 =
+ TSymbolUniqueId(1940);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_ImageCubeArray1_Int3_Int1 =
+ TSymbolUniqueId(1941);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_IImageCubeArray1_Int3_Int1 =
+ TSymbolUniqueId(1942);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_UImageCubeArray1_Int3_Int1 =
+ TSymbolUniqueId(1943);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_Image1D1_Int1_Int1 =
+ TSymbolUniqueId(1944);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_IImage1D1_Int1_Int1 =
+ TSymbolUniqueId(1945);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_UImage1D1_Int1_Int1 =
+ TSymbolUniqueId(1946);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_Image1DArray1_Int2_Int1 =
+ TSymbolUniqueId(1947);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_IImage1DArray1_Int2_Int1 =
+ TSymbolUniqueId(1948);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_UImage1DArray1_Int2_Int1 =
+ TSymbolUniqueId(1949);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_ImageRect1_Int2_Int1 =
+ TSymbolUniqueId(1950);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_IImageRect1_Int2_Int1 =
+ TSymbolUniqueId(1951);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_UImageRect1_Int2_Int1 =
+ TSymbolUniqueId(1952);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_Image2DMS1_Int2_Int1_Int1 =
+ TSymbolUniqueId(1953);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_IImage2DMS1_Int2_Int1_Int1 =
+ TSymbolUniqueId(1954);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_UImage2DMS1_Int2_Int1_Int1 =
+ TSymbolUniqueId(1955);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_Image2DMSArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(1956);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_IImage2DMSArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(1957);
+ static constexpr const TSymbolUniqueId imageAtomicAnd_UImage2DMSArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(1958);
+ static constexpr const TSymbolUniqueId imageAtomicOr_Image2D1_Int2_UInt1 =
+ TSymbolUniqueId(1959);
+ static constexpr const TSymbolUniqueId imageAtomicOr_IImage2D1_Int2_UInt1 =
+ TSymbolUniqueId(1960);
+ static constexpr const TSymbolUniqueId imageAtomicOr_UImage2D1_Int2_UInt1 =
+ TSymbolUniqueId(1961);
+ static constexpr const TSymbolUniqueId imageAtomicOr_Image3D1_Int3_UInt1 =
+ TSymbolUniqueId(1962);
+ static constexpr const TSymbolUniqueId imageAtomicOr_IImage3D1_Int3_UInt1 =
+ TSymbolUniqueId(1963);
+ static constexpr const TSymbolUniqueId imageAtomicOr_UImage3D1_Int3_UInt1 =
+ TSymbolUniqueId(1964);
+ static constexpr const TSymbolUniqueId imageAtomicOr_ImageCube1_Int3_UInt1 =
+ TSymbolUniqueId(1965);
+ static constexpr const TSymbolUniqueId imageAtomicOr_IImageCube1_Int3_UInt1 =
+ TSymbolUniqueId(1966);
+ static constexpr const TSymbolUniqueId imageAtomicOr_UImageCube1_Int3_UInt1 =
+ TSymbolUniqueId(1967);
+ static constexpr const TSymbolUniqueId imageAtomicOr_ImageBuffer1_Int1_UInt1 =
+ TSymbolUniqueId(1968);
+ static constexpr const TSymbolUniqueId imageAtomicOr_IImageBuffer1_Int1_UInt1 =
+ TSymbolUniqueId(1969);
+ static constexpr const TSymbolUniqueId imageAtomicOr_UImageBuffer1_Int1_UInt1 =
+ TSymbolUniqueId(1970);
+ static constexpr const TSymbolUniqueId imageAtomicOr_Image2DArray1_Int3_UInt1 =
+ TSymbolUniqueId(1971);
+ static constexpr const TSymbolUniqueId imageAtomicOr_IImage2DArray1_Int3_UInt1 =
+ TSymbolUniqueId(1972);
+ static constexpr const TSymbolUniqueId imageAtomicOr_UImage2DArray1_Int3_UInt1 =
+ TSymbolUniqueId(1973);
+ static constexpr const TSymbolUniqueId imageAtomicOr_ImageCubeArray1_Int3_UInt1 =
+ TSymbolUniqueId(1974);
+ static constexpr const TSymbolUniqueId imageAtomicOr_IImageCubeArray1_Int3_UInt1 =
+ TSymbolUniqueId(1975);
+ static constexpr const TSymbolUniqueId imageAtomicOr_UImageCubeArray1_Int3_UInt1 =
+ TSymbolUniqueId(1976);
+ static constexpr const TSymbolUniqueId imageAtomicOr_Image1D1_Int1_UInt1 =
+ TSymbolUniqueId(1977);
+ static constexpr const TSymbolUniqueId imageAtomicOr_IImage1D1_Int1_UInt1 =
+ TSymbolUniqueId(1978);
+ static constexpr const TSymbolUniqueId imageAtomicOr_UImage1D1_Int1_UInt1 =
+ TSymbolUniqueId(1979);
+ static constexpr const TSymbolUniqueId imageAtomicOr_Image1DArray1_Int2_UInt1 =
+ TSymbolUniqueId(1980);
+ static constexpr const TSymbolUniqueId imageAtomicOr_IImage1DArray1_Int2_UInt1 =
+ TSymbolUniqueId(1981);
+ static constexpr const TSymbolUniqueId imageAtomicOr_UImage1DArray1_Int2_UInt1 =
+ TSymbolUniqueId(1982);
+ static constexpr const TSymbolUniqueId imageAtomicOr_ImageRect1_Int2_UInt1 =
+ TSymbolUniqueId(1983);
+ static constexpr const TSymbolUniqueId imageAtomicOr_IImageRect1_Int2_UInt1 =
+ TSymbolUniqueId(1984);
+ static constexpr const TSymbolUniqueId imageAtomicOr_UImageRect1_Int2_UInt1 =
+ TSymbolUniqueId(1985);
+ static constexpr const TSymbolUniqueId imageAtomicOr_Image2DMS1_Int2_Int1_UInt1 =
+ TSymbolUniqueId(1986);
+ static constexpr const TSymbolUniqueId imageAtomicOr_IImage2DMS1_Int2_Int1_UInt1 =
+ TSymbolUniqueId(1987);
+ static constexpr const TSymbolUniqueId imageAtomicOr_UImage2DMS1_Int2_Int1_UInt1 =
+ TSymbolUniqueId(1988);
+ static constexpr const TSymbolUniqueId imageAtomicOr_Image2DMSArray1_Int3_Int1_UInt1 =
+ TSymbolUniqueId(1989);
+ static constexpr const TSymbolUniqueId imageAtomicOr_IImage2DMSArray1_Int3_Int1_UInt1 =
+ TSymbolUniqueId(1990);
+ static constexpr const TSymbolUniqueId imageAtomicOr_UImage2DMSArray1_Int3_Int1_UInt1 =
+ TSymbolUniqueId(1991);
+ static constexpr const TSymbolUniqueId imageAtomicOr_Image2D1_Int2_Int1 = TSymbolUniqueId(1992);
+ static constexpr const TSymbolUniqueId imageAtomicOr_IImage2D1_Int2_Int1 =
+ TSymbolUniqueId(1993);
+ static constexpr const TSymbolUniqueId imageAtomicOr_UImage2D1_Int2_Int1 =
+ TSymbolUniqueId(1994);
+ static constexpr const TSymbolUniqueId imageAtomicOr_Image3D1_Int3_Int1 = TSymbolUniqueId(1995);
+ static constexpr const TSymbolUniqueId imageAtomicOr_IImage3D1_Int3_Int1 =
+ TSymbolUniqueId(1996);
+ static constexpr const TSymbolUniqueId imageAtomicOr_UImage3D1_Int3_Int1 =
+ TSymbolUniqueId(1997);
+ static constexpr const TSymbolUniqueId imageAtomicOr_ImageCube1_Int3_Int1 =
+ TSymbolUniqueId(1998);
+ static constexpr const TSymbolUniqueId imageAtomicOr_IImageCube1_Int3_Int1 =
+ TSymbolUniqueId(1999);
+ static constexpr const TSymbolUniqueId imageAtomicOr_UImageCube1_Int3_Int1 =
+ TSymbolUniqueId(2000);
+ static constexpr const TSymbolUniqueId imageAtomicOr_ImageBuffer1_Int1_Int1 =
+ TSymbolUniqueId(2001);
+ static constexpr const TSymbolUniqueId imageAtomicOr_IImageBuffer1_Int1_Int1 =
+ TSymbolUniqueId(2002);
+ static constexpr const TSymbolUniqueId imageAtomicOr_UImageBuffer1_Int1_Int1 =
+ TSymbolUniqueId(2003);
+ static constexpr const TSymbolUniqueId imageAtomicOr_Image2DArray1_Int3_Int1 =
+ TSymbolUniqueId(2004);
+ static constexpr const TSymbolUniqueId imageAtomicOr_IImage2DArray1_Int3_Int1 =
+ TSymbolUniqueId(2005);
+ static constexpr const TSymbolUniqueId imageAtomicOr_UImage2DArray1_Int3_Int1 =
+ TSymbolUniqueId(2006);
+ static constexpr const TSymbolUniqueId imageAtomicOr_ImageCubeArray1_Int3_Int1 =
+ TSymbolUniqueId(2007);
+ static constexpr const TSymbolUniqueId imageAtomicOr_IImageCubeArray1_Int3_Int1 =
+ TSymbolUniqueId(2008);
+ static constexpr const TSymbolUniqueId imageAtomicOr_UImageCubeArray1_Int3_Int1 =
+ TSymbolUniqueId(2009);
+ static constexpr const TSymbolUniqueId imageAtomicOr_Image1D1_Int1_Int1 = TSymbolUniqueId(2010);
+ static constexpr const TSymbolUniqueId imageAtomicOr_IImage1D1_Int1_Int1 =
+ TSymbolUniqueId(2011);
+ static constexpr const TSymbolUniqueId imageAtomicOr_UImage1D1_Int1_Int1 =
+ TSymbolUniqueId(2012);
+ static constexpr const TSymbolUniqueId imageAtomicOr_Image1DArray1_Int2_Int1 =
+ TSymbolUniqueId(2013);
+ static constexpr const TSymbolUniqueId imageAtomicOr_IImage1DArray1_Int2_Int1 =
+ TSymbolUniqueId(2014);
+ static constexpr const TSymbolUniqueId imageAtomicOr_UImage1DArray1_Int2_Int1 =
+ TSymbolUniqueId(2015);
+ static constexpr const TSymbolUniqueId imageAtomicOr_ImageRect1_Int2_Int1 =
+ TSymbolUniqueId(2016);
+ static constexpr const TSymbolUniqueId imageAtomicOr_IImageRect1_Int2_Int1 =
+ TSymbolUniqueId(2017);
+ static constexpr const TSymbolUniqueId imageAtomicOr_UImageRect1_Int2_Int1 =
+ TSymbolUniqueId(2018);
+ static constexpr const TSymbolUniqueId imageAtomicOr_Image2DMS1_Int2_Int1_Int1 =
+ TSymbolUniqueId(2019);
+ static constexpr const TSymbolUniqueId imageAtomicOr_IImage2DMS1_Int2_Int1_Int1 =
+ TSymbolUniqueId(2020);
+ static constexpr const TSymbolUniqueId imageAtomicOr_UImage2DMS1_Int2_Int1_Int1 =
+ TSymbolUniqueId(2021);
+ static constexpr const TSymbolUniqueId imageAtomicOr_Image2DMSArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(2022);
+ static constexpr const TSymbolUniqueId imageAtomicOr_IImage2DMSArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(2023);
+ static constexpr const TSymbolUniqueId imageAtomicOr_UImage2DMSArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(2024);
+ static constexpr const TSymbolUniqueId imageAtomicXor_Image2D1_Int2_UInt1 =
+ TSymbolUniqueId(2025);
+ static constexpr const TSymbolUniqueId imageAtomicXor_IImage2D1_Int2_UInt1 =
+ TSymbolUniqueId(2026);
+ static constexpr const TSymbolUniqueId imageAtomicXor_UImage2D1_Int2_UInt1 =
+ TSymbolUniqueId(2027);
+ static constexpr const TSymbolUniqueId imageAtomicXor_Image3D1_Int3_UInt1 =
+ TSymbolUniqueId(2028);
+ static constexpr const TSymbolUniqueId imageAtomicXor_IImage3D1_Int3_UInt1 =
+ TSymbolUniqueId(2029);
+ static constexpr const TSymbolUniqueId imageAtomicXor_UImage3D1_Int3_UInt1 =
+ TSymbolUniqueId(2030);
+ static constexpr const TSymbolUniqueId imageAtomicXor_ImageCube1_Int3_UInt1 =
+ TSymbolUniqueId(2031);
+ static constexpr const TSymbolUniqueId imageAtomicXor_IImageCube1_Int3_UInt1 =
+ TSymbolUniqueId(2032);
+ static constexpr const TSymbolUniqueId imageAtomicXor_UImageCube1_Int3_UInt1 =
+ TSymbolUniqueId(2033);
+ static constexpr const TSymbolUniqueId imageAtomicXor_ImageBuffer1_Int1_UInt1 =
+ TSymbolUniqueId(2034);
+ static constexpr const TSymbolUniqueId imageAtomicXor_IImageBuffer1_Int1_UInt1 =
+ TSymbolUniqueId(2035);
+ static constexpr const TSymbolUniqueId imageAtomicXor_UImageBuffer1_Int1_UInt1 =
+ TSymbolUniqueId(2036);
+ static constexpr const TSymbolUniqueId imageAtomicXor_Image2DArray1_Int3_UInt1 =
+ TSymbolUniqueId(2037);
+ static constexpr const TSymbolUniqueId imageAtomicXor_IImage2DArray1_Int3_UInt1 =
+ TSymbolUniqueId(2038);
+ static constexpr const TSymbolUniqueId imageAtomicXor_UImage2DArray1_Int3_UInt1 =
+ TSymbolUniqueId(2039);
+ static constexpr const TSymbolUniqueId imageAtomicXor_ImageCubeArray1_Int3_UInt1 =
+ TSymbolUniqueId(2040);
+ static constexpr const TSymbolUniqueId imageAtomicXor_IImageCubeArray1_Int3_UInt1 =
+ TSymbolUniqueId(2041);
+ static constexpr const TSymbolUniqueId imageAtomicXor_UImageCubeArray1_Int3_UInt1 =
+ TSymbolUniqueId(2042);
+ static constexpr const TSymbolUniqueId imageAtomicXor_Image1D1_Int1_UInt1 =
+ TSymbolUniqueId(2043);
+ static constexpr const TSymbolUniqueId imageAtomicXor_IImage1D1_Int1_UInt1 =
+ TSymbolUniqueId(2044);
+ static constexpr const TSymbolUniqueId imageAtomicXor_UImage1D1_Int1_UInt1 =
+ TSymbolUniqueId(2045);
+ static constexpr const TSymbolUniqueId imageAtomicXor_Image1DArray1_Int2_UInt1 =
+ TSymbolUniqueId(2046);
+ static constexpr const TSymbolUniqueId imageAtomicXor_IImage1DArray1_Int2_UInt1 =
+ TSymbolUniqueId(2047);
+ static constexpr const TSymbolUniqueId imageAtomicXor_UImage1DArray1_Int2_UInt1 =
+ TSymbolUniqueId(2048);
+ static constexpr const TSymbolUniqueId imageAtomicXor_ImageRect1_Int2_UInt1 =
+ TSymbolUniqueId(2049);
+ static constexpr const TSymbolUniqueId imageAtomicXor_IImageRect1_Int2_UInt1 =
+ TSymbolUniqueId(2050);
+ static constexpr const TSymbolUniqueId imageAtomicXor_UImageRect1_Int2_UInt1 =
+ TSymbolUniqueId(2051);
+ static constexpr const TSymbolUniqueId imageAtomicXor_Image2DMS1_Int2_Int1_UInt1 =
+ TSymbolUniqueId(2052);
+ static constexpr const TSymbolUniqueId imageAtomicXor_IImage2DMS1_Int2_Int1_UInt1 =
+ TSymbolUniqueId(2053);
+ static constexpr const TSymbolUniqueId imageAtomicXor_UImage2DMS1_Int2_Int1_UInt1 =
+ TSymbolUniqueId(2054);
+ static constexpr const TSymbolUniqueId imageAtomicXor_Image2DMSArray1_Int3_Int1_UInt1 =
+ TSymbolUniqueId(2055);
+ static constexpr const TSymbolUniqueId imageAtomicXor_IImage2DMSArray1_Int3_Int1_UInt1 =
+ TSymbolUniqueId(2056);
+ static constexpr const TSymbolUniqueId imageAtomicXor_UImage2DMSArray1_Int3_Int1_UInt1 =
+ TSymbolUniqueId(2057);
+ static constexpr const TSymbolUniqueId imageAtomicXor_Image2D1_Int2_Int1 =
+ TSymbolUniqueId(2058);
+ static constexpr const TSymbolUniqueId imageAtomicXor_IImage2D1_Int2_Int1 =
+ TSymbolUniqueId(2059);
+ static constexpr const TSymbolUniqueId imageAtomicXor_UImage2D1_Int2_Int1 =
+ TSymbolUniqueId(2060);
+ static constexpr const TSymbolUniqueId imageAtomicXor_Image3D1_Int3_Int1 =
+ TSymbolUniqueId(2061);
+ static constexpr const TSymbolUniqueId imageAtomicXor_IImage3D1_Int3_Int1 =
+ TSymbolUniqueId(2062);
+ static constexpr const TSymbolUniqueId imageAtomicXor_UImage3D1_Int3_Int1 =
+ TSymbolUniqueId(2063);
+ static constexpr const TSymbolUniqueId imageAtomicXor_ImageCube1_Int3_Int1 =
+ TSymbolUniqueId(2064);
+ static constexpr const TSymbolUniqueId imageAtomicXor_IImageCube1_Int3_Int1 =
+ TSymbolUniqueId(2065);
+ static constexpr const TSymbolUniqueId imageAtomicXor_UImageCube1_Int3_Int1 =
+ TSymbolUniqueId(2066);
+ static constexpr const TSymbolUniqueId imageAtomicXor_ImageBuffer1_Int1_Int1 =
+ TSymbolUniqueId(2067);
+ static constexpr const TSymbolUniqueId imageAtomicXor_IImageBuffer1_Int1_Int1 =
+ TSymbolUniqueId(2068);
+ static constexpr const TSymbolUniqueId imageAtomicXor_UImageBuffer1_Int1_Int1 =
+ TSymbolUniqueId(2069);
+ static constexpr const TSymbolUniqueId imageAtomicXor_Image2DArray1_Int3_Int1 =
+ TSymbolUniqueId(2070);
+ static constexpr const TSymbolUniqueId imageAtomicXor_IImage2DArray1_Int3_Int1 =
+ TSymbolUniqueId(2071);
+ static constexpr const TSymbolUniqueId imageAtomicXor_UImage2DArray1_Int3_Int1 =
+ TSymbolUniqueId(2072);
+ static constexpr const TSymbolUniqueId imageAtomicXor_ImageCubeArray1_Int3_Int1 =
+ TSymbolUniqueId(2073);
+ static constexpr const TSymbolUniqueId imageAtomicXor_IImageCubeArray1_Int3_Int1 =
+ TSymbolUniqueId(2074);
+ static constexpr const TSymbolUniqueId imageAtomicXor_UImageCubeArray1_Int3_Int1 =
+ TSymbolUniqueId(2075);
+ static constexpr const TSymbolUniqueId imageAtomicXor_Image1D1_Int1_Int1 =
+ TSymbolUniqueId(2076);
+ static constexpr const TSymbolUniqueId imageAtomicXor_IImage1D1_Int1_Int1 =
+ TSymbolUniqueId(2077);
+ static constexpr const TSymbolUniqueId imageAtomicXor_UImage1D1_Int1_Int1 =
+ TSymbolUniqueId(2078);
+ static constexpr const TSymbolUniqueId imageAtomicXor_Image1DArray1_Int2_Int1 =
+ TSymbolUniqueId(2079);
+ static constexpr const TSymbolUniqueId imageAtomicXor_IImage1DArray1_Int2_Int1 =
+ TSymbolUniqueId(2080);
+ static constexpr const TSymbolUniqueId imageAtomicXor_UImage1DArray1_Int2_Int1 =
+ TSymbolUniqueId(2081);
+ static constexpr const TSymbolUniqueId imageAtomicXor_ImageRect1_Int2_Int1 =
+ TSymbolUniqueId(2082);
+ static constexpr const TSymbolUniqueId imageAtomicXor_IImageRect1_Int2_Int1 =
+ TSymbolUniqueId(2083);
+ static constexpr const TSymbolUniqueId imageAtomicXor_UImageRect1_Int2_Int1 =
+ TSymbolUniqueId(2084);
+ static constexpr const TSymbolUniqueId imageAtomicXor_Image2DMS1_Int2_Int1_Int1 =
+ TSymbolUniqueId(2085);
+ static constexpr const TSymbolUniqueId imageAtomicXor_IImage2DMS1_Int2_Int1_Int1 =
+ TSymbolUniqueId(2086);
+ static constexpr const TSymbolUniqueId imageAtomicXor_UImage2DMS1_Int2_Int1_Int1 =
+ TSymbolUniqueId(2087);
+ static constexpr const TSymbolUniqueId imageAtomicXor_Image2DMSArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(2088);
+ static constexpr const TSymbolUniqueId imageAtomicXor_IImage2DMSArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(2089);
+ static constexpr const TSymbolUniqueId imageAtomicXor_UImage2DMSArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(2090);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_Image2D1_Int2_UInt1 =
+ TSymbolUniqueId(2091);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_IImage2D1_Int2_UInt1 =
+ TSymbolUniqueId(2092);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_UImage2D1_Int2_UInt1 =
+ TSymbolUniqueId(2093);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_Image3D1_Int3_UInt1 =
+ TSymbolUniqueId(2094);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_IImage3D1_Int3_UInt1 =
+ TSymbolUniqueId(2095);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_UImage3D1_Int3_UInt1 =
+ TSymbolUniqueId(2096);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_ImageCube1_Int3_UInt1 =
+ TSymbolUniqueId(2097);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_IImageCube1_Int3_UInt1 =
+ TSymbolUniqueId(2098);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_UImageCube1_Int3_UInt1 =
+ TSymbolUniqueId(2099);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_ImageBuffer1_Int1_UInt1 =
+ TSymbolUniqueId(2100);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_IImageBuffer1_Int1_UInt1 =
+ TSymbolUniqueId(2101);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_UImageBuffer1_Int1_UInt1 =
+ TSymbolUniqueId(2102);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_Image2DArray1_Int3_UInt1 =
+ TSymbolUniqueId(2103);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_IImage2DArray1_Int3_UInt1 =
+ TSymbolUniqueId(2104);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_UImage2DArray1_Int3_UInt1 =
+ TSymbolUniqueId(2105);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_ImageCubeArray1_Int3_UInt1 =
+ TSymbolUniqueId(2106);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_IImageCubeArray1_Int3_UInt1 =
+ TSymbolUniqueId(2107);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_UImageCubeArray1_Int3_UInt1 =
+ TSymbolUniqueId(2108);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_Image1D1_Int1_UInt1 =
+ TSymbolUniqueId(2109);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_IImage1D1_Int1_UInt1 =
+ TSymbolUniqueId(2110);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_UImage1D1_Int1_UInt1 =
+ TSymbolUniqueId(2111);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_Image1DArray1_Int2_UInt1 =
+ TSymbolUniqueId(2112);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_IImage1DArray1_Int2_UInt1 =
+ TSymbolUniqueId(2113);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_UImage1DArray1_Int2_UInt1 =
+ TSymbolUniqueId(2114);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_ImageRect1_Int2_UInt1 =
+ TSymbolUniqueId(2115);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_IImageRect1_Int2_UInt1 =
+ TSymbolUniqueId(2116);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_UImageRect1_Int2_UInt1 =
+ TSymbolUniqueId(2117);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_Image2DMS1_Int2_Int1_UInt1 =
+ TSymbolUniqueId(2118);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_IImage2DMS1_Int2_Int1_UInt1 =
+ TSymbolUniqueId(2119);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_UImage2DMS1_Int2_Int1_UInt1 =
+ TSymbolUniqueId(2120);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_Image2DMSArray1_Int3_Int1_UInt1 =
+ TSymbolUniqueId(2121);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_IImage2DMSArray1_Int3_Int1_UInt1 =
+ TSymbolUniqueId(2122);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_UImage2DMSArray1_Int3_Int1_UInt1 =
+ TSymbolUniqueId(2123);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_Image2D1_Int2_Int1 =
+ TSymbolUniqueId(2124);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_IImage2D1_Int2_Int1 =
+ TSymbolUniqueId(2125);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_UImage2D1_Int2_Int1 =
+ TSymbolUniqueId(2126);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_Image3D1_Int3_Int1 =
+ TSymbolUniqueId(2127);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_IImage3D1_Int3_Int1 =
+ TSymbolUniqueId(2128);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_UImage3D1_Int3_Int1 =
+ TSymbolUniqueId(2129);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_ImageCube1_Int3_Int1 =
+ TSymbolUniqueId(2130);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_IImageCube1_Int3_Int1 =
+ TSymbolUniqueId(2131);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_UImageCube1_Int3_Int1 =
+ TSymbolUniqueId(2132);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_ImageBuffer1_Int1_Int1 =
+ TSymbolUniqueId(2133);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_IImageBuffer1_Int1_Int1 =
+ TSymbolUniqueId(2134);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_UImageBuffer1_Int1_Int1 =
+ TSymbolUniqueId(2135);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_Image2DArray1_Int3_Int1 =
+ TSymbolUniqueId(2136);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_IImage2DArray1_Int3_Int1 =
+ TSymbolUniqueId(2137);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_UImage2DArray1_Int3_Int1 =
+ TSymbolUniqueId(2138);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_ImageCubeArray1_Int3_Int1 =
+ TSymbolUniqueId(2139);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_IImageCubeArray1_Int3_Int1 =
+ TSymbolUniqueId(2140);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_UImageCubeArray1_Int3_Int1 =
+ TSymbolUniqueId(2141);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_Image1D1_Int1_Int1 =
+ TSymbolUniqueId(2142);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_IImage1D1_Int1_Int1 =
+ TSymbolUniqueId(2143);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_UImage1D1_Int1_Int1 =
+ TSymbolUniqueId(2144);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_Image1DArray1_Int2_Int1 =
+ TSymbolUniqueId(2145);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_IImage1DArray1_Int2_Int1 =
+ TSymbolUniqueId(2146);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_UImage1DArray1_Int2_Int1 =
+ TSymbolUniqueId(2147);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_ImageRect1_Int2_Int1 =
+ TSymbolUniqueId(2148);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_IImageRect1_Int2_Int1 =
+ TSymbolUniqueId(2149);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_UImageRect1_Int2_Int1 =
+ TSymbolUniqueId(2150);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_Image2DMS1_Int2_Int1_Int1 =
+ TSymbolUniqueId(2151);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_IImage2DMS1_Int2_Int1_Int1 =
+ TSymbolUniqueId(2152);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_UImage2DMS1_Int2_Int1_Int1 =
+ TSymbolUniqueId(2153);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_Image2DMSArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(2154);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_IImage2DMSArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(2155);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_UImage2DMSArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(2156);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_Image2D1_Int2_Float1 =
+ TSymbolUniqueId(2157);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_IImage2D1_Int2_Float1 =
+ TSymbolUniqueId(2158);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_UImage2D1_Int2_Float1 =
+ TSymbolUniqueId(2159);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_Image3D1_Int3_Float1 =
+ TSymbolUniqueId(2160);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_IImage3D1_Int3_Float1 =
+ TSymbolUniqueId(2161);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_UImage3D1_Int3_Float1 =
+ TSymbolUniqueId(2162);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_ImageCube1_Int3_Float1 =
+ TSymbolUniqueId(2163);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_IImageCube1_Int3_Float1 =
+ TSymbolUniqueId(2164);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_UImageCube1_Int3_Float1 =
+ TSymbolUniqueId(2165);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_ImageBuffer1_Int1_Float1 =
+ TSymbolUniqueId(2166);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_IImageBuffer1_Int1_Float1 =
+ TSymbolUniqueId(2167);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_UImageBuffer1_Int1_Float1 =
+ TSymbolUniqueId(2168);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_Image2DArray1_Int3_Float1 =
+ TSymbolUniqueId(2169);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_IImage2DArray1_Int3_Float1 =
+ TSymbolUniqueId(2170);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_UImage2DArray1_Int3_Float1 =
+ TSymbolUniqueId(2171);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_ImageCubeArray1_Int3_Float1 =
+ TSymbolUniqueId(2172);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_IImageCubeArray1_Int3_Float1 =
+ TSymbolUniqueId(2173);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_UImageCubeArray1_Int3_Float1 =
+ TSymbolUniqueId(2174);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_Image1D1_Int1_Float1 =
+ TSymbolUniqueId(2175);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_IImage1D1_Int1_Float1 =
+ TSymbolUniqueId(2176);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_UImage1D1_Int1_Float1 =
+ TSymbolUniqueId(2177);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_Image1DArray1_Int2_Float1 =
+ TSymbolUniqueId(2178);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_IImage1DArray1_Int2_Float1 =
+ TSymbolUniqueId(2179);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_UImage1DArray1_Int2_Float1 =
+ TSymbolUniqueId(2180);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_ImageRect1_Int2_Float1 =
+ TSymbolUniqueId(2181);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_IImageRect1_Int2_Float1 =
+ TSymbolUniqueId(2182);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_UImageRect1_Int2_Float1 =
+ TSymbolUniqueId(2183);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_Image2DMS1_Int2_Int1_Float1 =
+ TSymbolUniqueId(2184);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_IImage2DMS1_Int2_Int1_Float1 =
+ TSymbolUniqueId(2185);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_UImage2DMS1_Int2_Int1_Float1 =
+ TSymbolUniqueId(2186);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_Image2DMSArray1_Int3_Int1_Float1 =
+ TSymbolUniqueId(2187);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_IImage2DMSArray1_Int3_Int1_Float1 =
+ TSymbolUniqueId(2188);
+ static constexpr const TSymbolUniqueId imageAtomicExchange_UImage2DMSArray1_Int3_Int1_Float1 =
+ TSymbolUniqueId(2189);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_Image2D1_Int2_UInt1_UInt1 =
+ TSymbolUniqueId(2190);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_IImage2D1_Int2_UInt1_UInt1 =
+ TSymbolUniqueId(2191);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_UImage2D1_Int2_UInt1_UInt1 =
+ TSymbolUniqueId(2192);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_Image3D1_Int3_UInt1_UInt1 =
+ TSymbolUniqueId(2193);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_IImage3D1_Int3_UInt1_UInt1 =
+ TSymbolUniqueId(2194);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_UImage3D1_Int3_UInt1_UInt1 =
+ TSymbolUniqueId(2195);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_ImageCube1_Int3_UInt1_UInt1 =
+ TSymbolUniqueId(2196);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_IImageCube1_Int3_UInt1_UInt1 =
+ TSymbolUniqueId(2197);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_UImageCube1_Int3_UInt1_UInt1 =
+ TSymbolUniqueId(2198);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_ImageBuffer1_Int1_UInt1_UInt1 =
+ TSymbolUniqueId(2199);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_IImageBuffer1_Int1_UInt1_UInt1 =
+ TSymbolUniqueId(2200);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_UImageBuffer1_Int1_UInt1_UInt1 =
+ TSymbolUniqueId(2201);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_Image2DArray1_Int3_UInt1_UInt1 =
+ TSymbolUniqueId(2202);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_IImage2DArray1_Int3_UInt1_UInt1 =
+ TSymbolUniqueId(2203);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_UImage2DArray1_Int3_UInt1_UInt1 =
+ TSymbolUniqueId(2204);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_ImageCubeArray1_Int3_UInt1_UInt1 =
+ TSymbolUniqueId(2205);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_IImageCubeArray1_Int3_UInt1_UInt1 =
+ TSymbolUniqueId(2206);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_UImageCubeArray1_Int3_UInt1_UInt1 =
+ TSymbolUniqueId(2207);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_Image1D1_Int1_UInt1_UInt1 =
+ TSymbolUniqueId(2208);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_IImage1D1_Int1_UInt1_UInt1 =
+ TSymbolUniqueId(2209);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_UImage1D1_Int1_UInt1_UInt1 =
+ TSymbolUniqueId(2210);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_Image1DArray1_Int2_UInt1_UInt1 =
+ TSymbolUniqueId(2211);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_IImage1DArray1_Int2_UInt1_UInt1 =
+ TSymbolUniqueId(2212);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_UImage1DArray1_Int2_UInt1_UInt1 =
+ TSymbolUniqueId(2213);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_ImageRect1_Int2_UInt1_UInt1 =
+ TSymbolUniqueId(2214);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_IImageRect1_Int2_UInt1_UInt1 =
+ TSymbolUniqueId(2215);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_UImageRect1_Int2_UInt1_UInt1 =
+ TSymbolUniqueId(2216);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_Image2DMS1_Int2_Int1_UInt1_UInt1 =
+ TSymbolUniqueId(2217);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_IImage2DMS1_Int2_Int1_UInt1_UInt1 =
+ TSymbolUniqueId(2218);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_UImage2DMS1_Int2_Int1_UInt1_UInt1 =
+ TSymbolUniqueId(2219);
+ static constexpr const TSymbolUniqueId
+ imageAtomicCompSwap_Image2DMSArray1_Int3_Int1_UInt1_UInt1 = TSymbolUniqueId(2220);
+ static constexpr const TSymbolUniqueId
+ imageAtomicCompSwap_IImage2DMSArray1_Int3_Int1_UInt1_UInt1 = TSymbolUniqueId(2221);
+ static constexpr const TSymbolUniqueId
+ imageAtomicCompSwap_UImage2DMSArray1_Int3_Int1_UInt1_UInt1 = TSymbolUniqueId(2222);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_Image2D1_Int2_Int1_Int1 =
+ TSymbolUniqueId(2223);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_IImage2D1_Int2_Int1_Int1 =
+ TSymbolUniqueId(2224);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_UImage2D1_Int2_Int1_Int1 =
+ TSymbolUniqueId(2225);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_Image3D1_Int3_Int1_Int1 =
+ TSymbolUniqueId(2226);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_IImage3D1_Int3_Int1_Int1 =
+ TSymbolUniqueId(2227);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_UImage3D1_Int3_Int1_Int1 =
+ TSymbolUniqueId(2228);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_ImageCube1_Int3_Int1_Int1 =
+ TSymbolUniqueId(2229);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_IImageCube1_Int3_Int1_Int1 =
+ TSymbolUniqueId(2230);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_UImageCube1_Int3_Int1_Int1 =
+ TSymbolUniqueId(2231);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_ImageBuffer1_Int1_Int1_Int1 =
+ TSymbolUniqueId(2232);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_IImageBuffer1_Int1_Int1_Int1 =
+ TSymbolUniqueId(2233);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_UImageBuffer1_Int1_Int1_Int1 =
+ TSymbolUniqueId(2234);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_Image2DArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(2235);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_IImage2DArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(2236);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_UImage2DArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(2237);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_ImageCubeArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(2238);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_IImageCubeArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(2239);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_UImageCubeArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(2240);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_Image1D1_Int1_Int1_Int1 =
+ TSymbolUniqueId(2241);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_IImage1D1_Int1_Int1_Int1 =
+ TSymbolUniqueId(2242);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_UImage1D1_Int1_Int1_Int1 =
+ TSymbolUniqueId(2243);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_Image1DArray1_Int2_Int1_Int1 =
+ TSymbolUniqueId(2244);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_IImage1DArray1_Int2_Int1_Int1 =
+ TSymbolUniqueId(2245);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_UImage1DArray1_Int2_Int1_Int1 =
+ TSymbolUniqueId(2246);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_ImageRect1_Int2_Int1_Int1 =
+ TSymbolUniqueId(2247);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_IImageRect1_Int2_Int1_Int1 =
+ TSymbolUniqueId(2248);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_UImageRect1_Int2_Int1_Int1 =
+ TSymbolUniqueId(2249);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_Image2DMS1_Int2_Int1_Int1_Int1 =
+ TSymbolUniqueId(2250);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_IImage2DMS1_Int2_Int1_Int1_Int1 =
+ TSymbolUniqueId(2251);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_UImage2DMS1_Int2_Int1_Int1_Int1 =
+ TSymbolUniqueId(2252);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwap_Image2DMSArray1_Int3_Int1_Int1_Int1 =
+ TSymbolUniqueId(2253);
+ static constexpr const TSymbolUniqueId
+ imageAtomicCompSwap_IImage2DMSArray1_Int3_Int1_Int1_Int1 = TSymbolUniqueId(2254);
+ static constexpr const TSymbolUniqueId
+ imageAtomicCompSwap_UImage2DMSArray1_Int3_Int1_Int1_Int1 = TSymbolUniqueId(2255);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_Image2D1_Int2_UInt1 =
+ TSymbolUniqueId(2256);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_IImage2D1_Int2_UInt1 =
+ TSymbolUniqueId(2257);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_UImage2D1_Int2_UInt1 =
+ TSymbolUniqueId(2258);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_Image3D1_Int3_UInt1 =
+ TSymbolUniqueId(2259);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_IImage3D1_Int3_UInt1 =
+ TSymbolUniqueId(2260);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_UImage3D1_Int3_UInt1 =
+ TSymbolUniqueId(2261);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_ImageCube1_Int3_UInt1 =
+ TSymbolUniqueId(2262);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_IImageCube1_Int3_UInt1 =
+ TSymbolUniqueId(2263);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_UImageCube1_Int3_UInt1 =
+ TSymbolUniqueId(2264);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_ImageBuffer1_Int1_UInt1 =
+ TSymbolUniqueId(2265);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_IImageBuffer1_Int1_UInt1 =
+ TSymbolUniqueId(2266);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_UImageBuffer1_Int1_UInt1 =
+ TSymbolUniqueId(2267);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_Image2DArray1_Int3_UInt1 =
+ TSymbolUniqueId(2268);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_IImage2DArray1_Int3_UInt1 =
+ TSymbolUniqueId(2269);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_UImage2DArray1_Int3_UInt1 =
+ TSymbolUniqueId(2270);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_ImageCubeArray1_Int3_UInt1 =
+ TSymbolUniqueId(2271);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_IImageCubeArray1_Int3_UInt1 =
+ TSymbolUniqueId(2272);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_UImageCubeArray1_Int3_UInt1 =
+ TSymbolUniqueId(2273);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_Image1D1_Int1_UInt1 =
+ TSymbolUniqueId(2274);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_IImage1D1_Int1_UInt1 =
+ TSymbolUniqueId(2275);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_UImage1D1_Int1_UInt1 =
+ TSymbolUniqueId(2276);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_Image1DArray1_Int2_UInt1 =
+ TSymbolUniqueId(2277);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_IImage1DArray1_Int2_UInt1 =
+ TSymbolUniqueId(2278);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_UImage1DArray1_Int2_UInt1 =
+ TSymbolUniqueId(2279);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_ImageRect1_Int2_UInt1 =
+ TSymbolUniqueId(2280);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_IImageRect1_Int2_UInt1 =
+ TSymbolUniqueId(2281);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_UImageRect1_Int2_UInt1 =
+ TSymbolUniqueId(2282);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_Image2DMS1_Int2_Int1_UInt1 =
+ TSymbolUniqueId(2283);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_IImage2DMS1_Int2_Int1_UInt1 =
+ TSymbolUniqueId(2284);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_UImage2DMS1_Int2_Int1_UInt1 =
+ TSymbolUniqueId(2285);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_Image2DMSArray1_Int3_Int1_UInt1 =
+ TSymbolUniqueId(2286);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_IImage2DMSArray1_Int3_Int1_UInt1 =
+ TSymbolUniqueId(2287);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_UImage2DMSArray1_Int3_Int1_UInt1 =
+ TSymbolUniqueId(2288);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_Image2D1_Int2_Int1 =
+ TSymbolUniqueId(2289);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_IImage2D1_Int2_Int1 =
+ TSymbolUniqueId(2290);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_UImage2D1_Int2_Int1 =
+ TSymbolUniqueId(2291);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_Image3D1_Int3_Int1 =
+ TSymbolUniqueId(2292);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_IImage3D1_Int3_Int1 =
+ TSymbolUniqueId(2293);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_UImage3D1_Int3_Int1 =
+ TSymbolUniqueId(2294);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_ImageCube1_Int3_Int1 =
+ TSymbolUniqueId(2295);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_IImageCube1_Int3_Int1 =
+ TSymbolUniqueId(2296);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_UImageCube1_Int3_Int1 =
+ TSymbolUniqueId(2297);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_ImageBuffer1_Int1_Int1 =
+ TSymbolUniqueId(2298);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_IImageBuffer1_Int1_Int1 =
+ TSymbolUniqueId(2299);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_UImageBuffer1_Int1_Int1 =
+ TSymbolUniqueId(2300);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_Image2DArray1_Int3_Int1 =
+ TSymbolUniqueId(2301);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_IImage2DArray1_Int3_Int1 =
+ TSymbolUniqueId(2302);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_UImage2DArray1_Int3_Int1 =
+ TSymbolUniqueId(2303);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_ImageCubeArray1_Int3_Int1 =
+ TSymbolUniqueId(2304);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_IImageCubeArray1_Int3_Int1 =
+ TSymbolUniqueId(2305);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_UImageCubeArray1_Int3_Int1 =
+ TSymbolUniqueId(2306);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_Image1D1_Int1_Int1 =
+ TSymbolUniqueId(2307);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_IImage1D1_Int1_Int1 =
+ TSymbolUniqueId(2308);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_UImage1D1_Int1_Int1 =
+ TSymbolUniqueId(2309);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_Image1DArray1_Int2_Int1 =
+ TSymbolUniqueId(2310);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_IImage1DArray1_Int2_Int1 =
+ TSymbolUniqueId(2311);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_UImage1DArray1_Int2_Int1 =
+ TSymbolUniqueId(2312);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_ImageRect1_Int2_Int1 =
+ TSymbolUniqueId(2313);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_IImageRect1_Int2_Int1 =
+ TSymbolUniqueId(2314);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_UImageRect1_Int2_Int1 =
+ TSymbolUniqueId(2315);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_Image2DMS1_Int2_Int1_Int1 =
+ TSymbolUniqueId(2316);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_IImage2DMS1_Int2_Int1_Int1 =
+ TSymbolUniqueId(2317);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_UImage2DMS1_Int2_Int1_Int1 =
+ TSymbolUniqueId(2318);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_Image2DMSArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(2319);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_IImage2DMSArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(2320);
+ static constexpr const TSymbolUniqueId imageAtomicAddExt_UImage2DMSArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(2321);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_Image2D1_Int2_UInt1 =
+ TSymbolUniqueId(2322);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_IImage2D1_Int2_UInt1 =
+ TSymbolUniqueId(2323);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_UImage2D1_Int2_UInt1 =
+ TSymbolUniqueId(2324);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_Image3D1_Int3_UInt1 =
+ TSymbolUniqueId(2325);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_IImage3D1_Int3_UInt1 =
+ TSymbolUniqueId(2326);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_UImage3D1_Int3_UInt1 =
+ TSymbolUniqueId(2327);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_ImageCube1_Int3_UInt1 =
+ TSymbolUniqueId(2328);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_IImageCube1_Int3_UInt1 =
+ TSymbolUniqueId(2329);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_UImageCube1_Int3_UInt1 =
+ TSymbolUniqueId(2330);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_ImageBuffer1_Int1_UInt1 =
+ TSymbolUniqueId(2331);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_IImageBuffer1_Int1_UInt1 =
+ TSymbolUniqueId(2332);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_UImageBuffer1_Int1_UInt1 =
+ TSymbolUniqueId(2333);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_Image2DArray1_Int3_UInt1 =
+ TSymbolUniqueId(2334);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_IImage2DArray1_Int3_UInt1 =
+ TSymbolUniqueId(2335);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_UImage2DArray1_Int3_UInt1 =
+ TSymbolUniqueId(2336);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_ImageCubeArray1_Int3_UInt1 =
+ TSymbolUniqueId(2337);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_IImageCubeArray1_Int3_UInt1 =
+ TSymbolUniqueId(2338);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_UImageCubeArray1_Int3_UInt1 =
+ TSymbolUniqueId(2339);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_Image1D1_Int1_UInt1 =
+ TSymbolUniqueId(2340);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_IImage1D1_Int1_UInt1 =
+ TSymbolUniqueId(2341);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_UImage1D1_Int1_UInt1 =
+ TSymbolUniqueId(2342);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_Image1DArray1_Int2_UInt1 =
+ TSymbolUniqueId(2343);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_IImage1DArray1_Int2_UInt1 =
+ TSymbolUniqueId(2344);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_UImage1DArray1_Int2_UInt1 =
+ TSymbolUniqueId(2345);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_ImageRect1_Int2_UInt1 =
+ TSymbolUniqueId(2346);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_IImageRect1_Int2_UInt1 =
+ TSymbolUniqueId(2347);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_UImageRect1_Int2_UInt1 =
+ TSymbolUniqueId(2348);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_Image2DMS1_Int2_Int1_UInt1 =
+ TSymbolUniqueId(2349);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_IImage2DMS1_Int2_Int1_UInt1 =
+ TSymbolUniqueId(2350);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_UImage2DMS1_Int2_Int1_UInt1 =
+ TSymbolUniqueId(2351);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_Image2DMSArray1_Int3_Int1_UInt1 =
+ TSymbolUniqueId(2352);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_IImage2DMSArray1_Int3_Int1_UInt1 =
+ TSymbolUniqueId(2353);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_UImage2DMSArray1_Int3_Int1_UInt1 =
+ TSymbolUniqueId(2354);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_Image2D1_Int2_Int1 =
+ TSymbolUniqueId(2355);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_IImage2D1_Int2_Int1 =
+ TSymbolUniqueId(2356);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_UImage2D1_Int2_Int1 =
+ TSymbolUniqueId(2357);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_Image3D1_Int3_Int1 =
+ TSymbolUniqueId(2358);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_IImage3D1_Int3_Int1 =
+ TSymbolUniqueId(2359);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_UImage3D1_Int3_Int1 =
+ TSymbolUniqueId(2360);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_ImageCube1_Int3_Int1 =
+ TSymbolUniqueId(2361);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_IImageCube1_Int3_Int1 =
+ TSymbolUniqueId(2362);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_UImageCube1_Int3_Int1 =
+ TSymbolUniqueId(2363);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_ImageBuffer1_Int1_Int1 =
+ TSymbolUniqueId(2364);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_IImageBuffer1_Int1_Int1 =
+ TSymbolUniqueId(2365);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_UImageBuffer1_Int1_Int1 =
+ TSymbolUniqueId(2366);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_Image2DArray1_Int3_Int1 =
+ TSymbolUniqueId(2367);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_IImage2DArray1_Int3_Int1 =
+ TSymbolUniqueId(2368);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_UImage2DArray1_Int3_Int1 =
+ TSymbolUniqueId(2369);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_ImageCubeArray1_Int3_Int1 =
+ TSymbolUniqueId(2370);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_IImageCubeArray1_Int3_Int1 =
+ TSymbolUniqueId(2371);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_UImageCubeArray1_Int3_Int1 =
+ TSymbolUniqueId(2372);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_Image1D1_Int1_Int1 =
+ TSymbolUniqueId(2373);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_IImage1D1_Int1_Int1 =
+ TSymbolUniqueId(2374);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_UImage1D1_Int1_Int1 =
+ TSymbolUniqueId(2375);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_Image1DArray1_Int2_Int1 =
+ TSymbolUniqueId(2376);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_IImage1DArray1_Int2_Int1 =
+ TSymbolUniqueId(2377);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_UImage1DArray1_Int2_Int1 =
+ TSymbolUniqueId(2378);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_ImageRect1_Int2_Int1 =
+ TSymbolUniqueId(2379);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_IImageRect1_Int2_Int1 =
+ TSymbolUniqueId(2380);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_UImageRect1_Int2_Int1 =
+ TSymbolUniqueId(2381);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_Image2DMS1_Int2_Int1_Int1 =
+ TSymbolUniqueId(2382);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_IImage2DMS1_Int2_Int1_Int1 =
+ TSymbolUniqueId(2383);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_UImage2DMS1_Int2_Int1_Int1 =
+ TSymbolUniqueId(2384);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_Image2DMSArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(2385);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_IImage2DMSArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(2386);
+ static constexpr const TSymbolUniqueId imageAtomicMinExt_UImage2DMSArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(2387);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_Image2D1_Int2_UInt1 =
+ TSymbolUniqueId(2388);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImage2D1_Int2_UInt1 =
+ TSymbolUniqueId(2389);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImage2D1_Int2_UInt1 =
+ TSymbolUniqueId(2390);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_Image3D1_Int3_UInt1 =
+ TSymbolUniqueId(2391);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImage3D1_Int3_UInt1 =
+ TSymbolUniqueId(2392);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImage3D1_Int3_UInt1 =
+ TSymbolUniqueId(2393);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_ImageCube1_Int3_UInt1 =
+ TSymbolUniqueId(2394);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImageCube1_Int3_UInt1 =
+ TSymbolUniqueId(2395);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImageCube1_Int3_UInt1 =
+ TSymbolUniqueId(2396);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_ImageBuffer1_Int1_UInt1 =
+ TSymbolUniqueId(2397);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImageBuffer1_Int1_UInt1 =
+ TSymbolUniqueId(2398);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImageBuffer1_Int1_UInt1 =
+ TSymbolUniqueId(2399);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_Image2DArray1_Int3_UInt1 =
+ TSymbolUniqueId(2400);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImage2DArray1_Int3_UInt1 =
+ TSymbolUniqueId(2401);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImage2DArray1_Int3_UInt1 =
+ TSymbolUniqueId(2402);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_ImageCubeArray1_Int3_UInt1 =
+ TSymbolUniqueId(2403);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImageCubeArray1_Int3_UInt1 =
+ TSymbolUniqueId(2404);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImageCubeArray1_Int3_UInt1 =
+ TSymbolUniqueId(2405);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_Image1D1_Int1_UInt1 =
+ TSymbolUniqueId(2406);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImage1D1_Int1_UInt1 =
+ TSymbolUniqueId(2407);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImage1D1_Int1_UInt1 =
+ TSymbolUniqueId(2408);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_Image1DArray1_Int2_UInt1 =
+ TSymbolUniqueId(2409);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImage1DArray1_Int2_UInt1 =
+ TSymbolUniqueId(2410);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImage1DArray1_Int2_UInt1 =
+ TSymbolUniqueId(2411);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_ImageRect1_Int2_UInt1 =
+ TSymbolUniqueId(2412);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImageRect1_Int2_UInt1 =
+ TSymbolUniqueId(2413);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImageRect1_Int2_UInt1 =
+ TSymbolUniqueId(2414);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_Image2DMS1_Int2_Int1_UInt1 =
+ TSymbolUniqueId(2415);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImage2DMS1_Int2_Int1_UInt1 =
+ TSymbolUniqueId(2416);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImage2DMS1_Int2_Int1_UInt1 =
+ TSymbolUniqueId(2417);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_Image2DMSArray1_Int3_Int1_UInt1 =
+ TSymbolUniqueId(2418);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImage2DMSArray1_Int3_Int1_UInt1 =
+ TSymbolUniqueId(2419);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImage2DMSArray1_Int3_Int1_UInt1 =
+ TSymbolUniqueId(2420);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_Image2D1_Int2_Int1 =
+ TSymbolUniqueId(2421);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImage2D1_Int2_Int1 =
+ TSymbolUniqueId(2422);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImage2D1_Int2_Int1 =
+ TSymbolUniqueId(2423);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_Image3D1_Int3_Int1 =
+ TSymbolUniqueId(2424);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImage3D1_Int3_Int1 =
+ TSymbolUniqueId(2425);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImage3D1_Int3_Int1 =
+ TSymbolUniqueId(2426);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_ImageCube1_Int3_Int1 =
+ TSymbolUniqueId(2427);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImageCube1_Int3_Int1 =
+ TSymbolUniqueId(2428);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImageCube1_Int3_Int1 =
+ TSymbolUniqueId(2429);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_ImageBuffer1_Int1_Int1 =
+ TSymbolUniqueId(2430);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImageBuffer1_Int1_Int1 =
+ TSymbolUniqueId(2431);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImageBuffer1_Int1_Int1 =
+ TSymbolUniqueId(2432);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_Image2DArray1_Int3_Int1 =
+ TSymbolUniqueId(2433);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImage2DArray1_Int3_Int1 =
+ TSymbolUniqueId(2434);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImage2DArray1_Int3_Int1 =
+ TSymbolUniqueId(2435);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_ImageCubeArray1_Int3_Int1 =
+ TSymbolUniqueId(2436);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImageCubeArray1_Int3_Int1 =
+ TSymbolUniqueId(2437);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImageCubeArray1_Int3_Int1 =
+ TSymbolUniqueId(2438);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_Image1D1_Int1_Int1 =
+ TSymbolUniqueId(2439);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImage1D1_Int1_Int1 =
+ TSymbolUniqueId(2440);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImage1D1_Int1_Int1 =
+ TSymbolUniqueId(2441);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_Image1DArray1_Int2_Int1 =
+ TSymbolUniqueId(2442);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImage1DArray1_Int2_Int1 =
+ TSymbolUniqueId(2443);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImage1DArray1_Int2_Int1 =
+ TSymbolUniqueId(2444);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_ImageRect1_Int2_Int1 =
+ TSymbolUniqueId(2445);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImageRect1_Int2_Int1 =
+ TSymbolUniqueId(2446);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImageRect1_Int2_Int1 =
+ TSymbolUniqueId(2447);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_Image2DMS1_Int2_Int1_Int1 =
+ TSymbolUniqueId(2448);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImage2DMS1_Int2_Int1_Int1 =
+ TSymbolUniqueId(2449);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImage2DMS1_Int2_Int1_Int1 =
+ TSymbolUniqueId(2450);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_Image2DMSArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(2451);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_IImage2DMSArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(2452);
+ static constexpr const TSymbolUniqueId imageAtomicMaxExt_UImage2DMSArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(2453);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_Image2D1_Int2_UInt1 =
+ TSymbolUniqueId(2454);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_IImage2D1_Int2_UInt1 =
+ TSymbolUniqueId(2455);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_UImage2D1_Int2_UInt1 =
+ TSymbolUniqueId(2456);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_Image3D1_Int3_UInt1 =
+ TSymbolUniqueId(2457);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_IImage3D1_Int3_UInt1 =
+ TSymbolUniqueId(2458);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_UImage3D1_Int3_UInt1 =
+ TSymbolUniqueId(2459);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_ImageCube1_Int3_UInt1 =
+ TSymbolUniqueId(2460);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_IImageCube1_Int3_UInt1 =
+ TSymbolUniqueId(2461);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_UImageCube1_Int3_UInt1 =
+ TSymbolUniqueId(2462);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_ImageBuffer1_Int1_UInt1 =
+ TSymbolUniqueId(2463);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_IImageBuffer1_Int1_UInt1 =
+ TSymbolUniqueId(2464);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_UImageBuffer1_Int1_UInt1 =
+ TSymbolUniqueId(2465);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_Image2DArray1_Int3_UInt1 =
+ TSymbolUniqueId(2466);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_IImage2DArray1_Int3_UInt1 =
+ TSymbolUniqueId(2467);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_UImage2DArray1_Int3_UInt1 =
+ TSymbolUniqueId(2468);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_ImageCubeArray1_Int3_UInt1 =
+ TSymbolUniqueId(2469);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_IImageCubeArray1_Int3_UInt1 =
+ TSymbolUniqueId(2470);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_UImageCubeArray1_Int3_UInt1 =
+ TSymbolUniqueId(2471);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_Image1D1_Int1_UInt1 =
+ TSymbolUniqueId(2472);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_IImage1D1_Int1_UInt1 =
+ TSymbolUniqueId(2473);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_UImage1D1_Int1_UInt1 =
+ TSymbolUniqueId(2474);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_Image1DArray1_Int2_UInt1 =
+ TSymbolUniqueId(2475);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_IImage1DArray1_Int2_UInt1 =
+ TSymbolUniqueId(2476);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_UImage1DArray1_Int2_UInt1 =
+ TSymbolUniqueId(2477);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_ImageRect1_Int2_UInt1 =
+ TSymbolUniqueId(2478);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_IImageRect1_Int2_UInt1 =
+ TSymbolUniqueId(2479);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_UImageRect1_Int2_UInt1 =
+ TSymbolUniqueId(2480);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_Image2DMS1_Int2_Int1_UInt1 =
+ TSymbolUniqueId(2481);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_IImage2DMS1_Int2_Int1_UInt1 =
+ TSymbolUniqueId(2482);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_UImage2DMS1_Int2_Int1_UInt1 =
+ TSymbolUniqueId(2483);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_Image2DMSArray1_Int3_Int1_UInt1 =
+ TSymbolUniqueId(2484);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_IImage2DMSArray1_Int3_Int1_UInt1 =
+ TSymbolUniqueId(2485);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_UImage2DMSArray1_Int3_Int1_UInt1 =
+ TSymbolUniqueId(2486);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_Image2D1_Int2_Int1 =
+ TSymbolUniqueId(2487);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_IImage2D1_Int2_Int1 =
+ TSymbolUniqueId(2488);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_UImage2D1_Int2_Int1 =
+ TSymbolUniqueId(2489);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_Image3D1_Int3_Int1 =
+ TSymbolUniqueId(2490);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_IImage3D1_Int3_Int1 =
+ TSymbolUniqueId(2491);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_UImage3D1_Int3_Int1 =
+ TSymbolUniqueId(2492);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_ImageCube1_Int3_Int1 =
+ TSymbolUniqueId(2493);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_IImageCube1_Int3_Int1 =
+ TSymbolUniqueId(2494);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_UImageCube1_Int3_Int1 =
+ TSymbolUniqueId(2495);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_ImageBuffer1_Int1_Int1 =
+ TSymbolUniqueId(2496);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_IImageBuffer1_Int1_Int1 =
+ TSymbolUniqueId(2497);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_UImageBuffer1_Int1_Int1 =
+ TSymbolUniqueId(2498);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_Image2DArray1_Int3_Int1 =
+ TSymbolUniqueId(2499);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_IImage2DArray1_Int3_Int1 =
+ TSymbolUniqueId(2500);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_UImage2DArray1_Int3_Int1 =
+ TSymbolUniqueId(2501);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_ImageCubeArray1_Int3_Int1 =
+ TSymbolUniqueId(2502);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_IImageCubeArray1_Int3_Int1 =
+ TSymbolUniqueId(2503);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_UImageCubeArray1_Int3_Int1 =
+ TSymbolUniqueId(2504);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_Image1D1_Int1_Int1 =
+ TSymbolUniqueId(2505);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_IImage1D1_Int1_Int1 =
+ TSymbolUniqueId(2506);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_UImage1D1_Int1_Int1 =
+ TSymbolUniqueId(2507);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_Image1DArray1_Int2_Int1 =
+ TSymbolUniqueId(2508);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_IImage1DArray1_Int2_Int1 =
+ TSymbolUniqueId(2509);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_UImage1DArray1_Int2_Int1 =
+ TSymbolUniqueId(2510);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_ImageRect1_Int2_Int1 =
+ TSymbolUniqueId(2511);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_IImageRect1_Int2_Int1 =
+ TSymbolUniqueId(2512);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_UImageRect1_Int2_Int1 =
+ TSymbolUniqueId(2513);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_Image2DMS1_Int2_Int1_Int1 =
+ TSymbolUniqueId(2514);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_IImage2DMS1_Int2_Int1_Int1 =
+ TSymbolUniqueId(2515);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_UImage2DMS1_Int2_Int1_Int1 =
+ TSymbolUniqueId(2516);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_Image2DMSArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(2517);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_IImage2DMSArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(2518);
+ static constexpr const TSymbolUniqueId imageAtomicAndExt_UImage2DMSArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(2519);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_Image2D1_Int2_UInt1 =
+ TSymbolUniqueId(2520);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_IImage2D1_Int2_UInt1 =
+ TSymbolUniqueId(2521);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_UImage2D1_Int2_UInt1 =
+ TSymbolUniqueId(2522);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_Image3D1_Int3_UInt1 =
+ TSymbolUniqueId(2523);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_IImage3D1_Int3_UInt1 =
+ TSymbolUniqueId(2524);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_UImage3D1_Int3_UInt1 =
+ TSymbolUniqueId(2525);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_ImageCube1_Int3_UInt1 =
+ TSymbolUniqueId(2526);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_IImageCube1_Int3_UInt1 =
+ TSymbolUniqueId(2527);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_UImageCube1_Int3_UInt1 =
+ TSymbolUniqueId(2528);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_ImageBuffer1_Int1_UInt1 =
+ TSymbolUniqueId(2529);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_IImageBuffer1_Int1_UInt1 =
+ TSymbolUniqueId(2530);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_UImageBuffer1_Int1_UInt1 =
+ TSymbolUniqueId(2531);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_Image2DArray1_Int3_UInt1 =
+ TSymbolUniqueId(2532);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_IImage2DArray1_Int3_UInt1 =
+ TSymbolUniqueId(2533);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_UImage2DArray1_Int3_UInt1 =
+ TSymbolUniqueId(2534);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_ImageCubeArray1_Int3_UInt1 =
+ TSymbolUniqueId(2535);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_IImageCubeArray1_Int3_UInt1 =
+ TSymbolUniqueId(2536);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_UImageCubeArray1_Int3_UInt1 =
+ TSymbolUniqueId(2537);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_Image1D1_Int1_UInt1 =
+ TSymbolUniqueId(2538);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_IImage1D1_Int1_UInt1 =
+ TSymbolUniqueId(2539);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_UImage1D1_Int1_UInt1 =
+ TSymbolUniqueId(2540);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_Image1DArray1_Int2_UInt1 =
+ TSymbolUniqueId(2541);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_IImage1DArray1_Int2_UInt1 =
+ TSymbolUniqueId(2542);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_UImage1DArray1_Int2_UInt1 =
+ TSymbolUniqueId(2543);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_ImageRect1_Int2_UInt1 =
+ TSymbolUniqueId(2544);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_IImageRect1_Int2_UInt1 =
+ TSymbolUniqueId(2545);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_UImageRect1_Int2_UInt1 =
+ TSymbolUniqueId(2546);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_Image2DMS1_Int2_Int1_UInt1 =
+ TSymbolUniqueId(2547);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_IImage2DMS1_Int2_Int1_UInt1 =
+ TSymbolUniqueId(2548);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_UImage2DMS1_Int2_Int1_UInt1 =
+ TSymbolUniqueId(2549);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_Image2DMSArray1_Int3_Int1_UInt1 =
+ TSymbolUniqueId(2550);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_IImage2DMSArray1_Int3_Int1_UInt1 =
+ TSymbolUniqueId(2551);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_UImage2DMSArray1_Int3_Int1_UInt1 =
+ TSymbolUniqueId(2552);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_Image2D1_Int2_Int1 =
+ TSymbolUniqueId(2553);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_IImage2D1_Int2_Int1 =
+ TSymbolUniqueId(2554);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_UImage2D1_Int2_Int1 =
+ TSymbolUniqueId(2555);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_Image3D1_Int3_Int1 =
+ TSymbolUniqueId(2556);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_IImage3D1_Int3_Int1 =
+ TSymbolUniqueId(2557);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_UImage3D1_Int3_Int1 =
+ TSymbolUniqueId(2558);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_ImageCube1_Int3_Int1 =
+ TSymbolUniqueId(2559);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_IImageCube1_Int3_Int1 =
+ TSymbolUniqueId(2560);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_UImageCube1_Int3_Int1 =
+ TSymbolUniqueId(2561);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_ImageBuffer1_Int1_Int1 =
+ TSymbolUniqueId(2562);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_IImageBuffer1_Int1_Int1 =
+ TSymbolUniqueId(2563);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_UImageBuffer1_Int1_Int1 =
+ TSymbolUniqueId(2564);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_Image2DArray1_Int3_Int1 =
+ TSymbolUniqueId(2565);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_IImage2DArray1_Int3_Int1 =
+ TSymbolUniqueId(2566);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_UImage2DArray1_Int3_Int1 =
+ TSymbolUniqueId(2567);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_ImageCubeArray1_Int3_Int1 =
+ TSymbolUniqueId(2568);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_IImageCubeArray1_Int3_Int1 =
+ TSymbolUniqueId(2569);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_UImageCubeArray1_Int3_Int1 =
+ TSymbolUniqueId(2570);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_Image1D1_Int1_Int1 =
+ TSymbolUniqueId(2571);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_IImage1D1_Int1_Int1 =
+ TSymbolUniqueId(2572);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_UImage1D1_Int1_Int1 =
+ TSymbolUniqueId(2573);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_Image1DArray1_Int2_Int1 =
+ TSymbolUniqueId(2574);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_IImage1DArray1_Int2_Int1 =
+ TSymbolUniqueId(2575);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_UImage1DArray1_Int2_Int1 =
+ TSymbolUniqueId(2576);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_ImageRect1_Int2_Int1 =
+ TSymbolUniqueId(2577);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_IImageRect1_Int2_Int1 =
+ TSymbolUniqueId(2578);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_UImageRect1_Int2_Int1 =
+ TSymbolUniqueId(2579);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_Image2DMS1_Int2_Int1_Int1 =
+ TSymbolUniqueId(2580);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_IImage2DMS1_Int2_Int1_Int1 =
+ TSymbolUniqueId(2581);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_UImage2DMS1_Int2_Int1_Int1 =
+ TSymbolUniqueId(2582);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_Image2DMSArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(2583);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_IImage2DMSArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(2584);
+ static constexpr const TSymbolUniqueId imageAtomicOrExt_UImage2DMSArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(2585);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_Image2D1_Int2_UInt1 =
+ TSymbolUniqueId(2586);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_IImage2D1_Int2_UInt1 =
+ TSymbolUniqueId(2587);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_UImage2D1_Int2_UInt1 =
+ TSymbolUniqueId(2588);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_Image3D1_Int3_UInt1 =
+ TSymbolUniqueId(2589);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_IImage3D1_Int3_UInt1 =
+ TSymbolUniqueId(2590);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_UImage3D1_Int3_UInt1 =
+ TSymbolUniqueId(2591);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_ImageCube1_Int3_UInt1 =
+ TSymbolUniqueId(2592);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_IImageCube1_Int3_UInt1 =
+ TSymbolUniqueId(2593);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_UImageCube1_Int3_UInt1 =
+ TSymbolUniqueId(2594);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_ImageBuffer1_Int1_UInt1 =
+ TSymbolUniqueId(2595);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_IImageBuffer1_Int1_UInt1 =
+ TSymbolUniqueId(2596);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_UImageBuffer1_Int1_UInt1 =
+ TSymbolUniqueId(2597);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_Image2DArray1_Int3_UInt1 =
+ TSymbolUniqueId(2598);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_IImage2DArray1_Int3_UInt1 =
+ TSymbolUniqueId(2599);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_UImage2DArray1_Int3_UInt1 =
+ TSymbolUniqueId(2600);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_ImageCubeArray1_Int3_UInt1 =
+ TSymbolUniqueId(2601);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_IImageCubeArray1_Int3_UInt1 =
+ TSymbolUniqueId(2602);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_UImageCubeArray1_Int3_UInt1 =
+ TSymbolUniqueId(2603);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_Image1D1_Int1_UInt1 =
+ TSymbolUniqueId(2604);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_IImage1D1_Int1_UInt1 =
+ TSymbolUniqueId(2605);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_UImage1D1_Int1_UInt1 =
+ TSymbolUniqueId(2606);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_Image1DArray1_Int2_UInt1 =
+ TSymbolUniqueId(2607);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_IImage1DArray1_Int2_UInt1 =
+ TSymbolUniqueId(2608);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_UImage1DArray1_Int2_UInt1 =
+ TSymbolUniqueId(2609);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_ImageRect1_Int2_UInt1 =
+ TSymbolUniqueId(2610);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_IImageRect1_Int2_UInt1 =
+ TSymbolUniqueId(2611);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_UImageRect1_Int2_UInt1 =
+ TSymbolUniqueId(2612);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_Image2DMS1_Int2_Int1_UInt1 =
+ TSymbolUniqueId(2613);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_IImage2DMS1_Int2_Int1_UInt1 =
+ TSymbolUniqueId(2614);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_UImage2DMS1_Int2_Int1_UInt1 =
+ TSymbolUniqueId(2615);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_Image2DMSArray1_Int3_Int1_UInt1 =
+ TSymbolUniqueId(2616);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_IImage2DMSArray1_Int3_Int1_UInt1 =
+ TSymbolUniqueId(2617);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_UImage2DMSArray1_Int3_Int1_UInt1 =
+ TSymbolUniqueId(2618);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_Image2D1_Int2_Int1 =
+ TSymbolUniqueId(2619);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_IImage2D1_Int2_Int1 =
+ TSymbolUniqueId(2620);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_UImage2D1_Int2_Int1 =
+ TSymbolUniqueId(2621);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_Image3D1_Int3_Int1 =
+ TSymbolUniqueId(2622);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_IImage3D1_Int3_Int1 =
+ TSymbolUniqueId(2623);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_UImage3D1_Int3_Int1 =
+ TSymbolUniqueId(2624);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_ImageCube1_Int3_Int1 =
+ TSymbolUniqueId(2625);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_IImageCube1_Int3_Int1 =
+ TSymbolUniqueId(2626);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_UImageCube1_Int3_Int1 =
+ TSymbolUniqueId(2627);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_ImageBuffer1_Int1_Int1 =
+ TSymbolUniqueId(2628);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_IImageBuffer1_Int1_Int1 =
+ TSymbolUniqueId(2629);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_UImageBuffer1_Int1_Int1 =
+ TSymbolUniqueId(2630);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_Image2DArray1_Int3_Int1 =
+ TSymbolUniqueId(2631);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_IImage2DArray1_Int3_Int1 =
+ TSymbolUniqueId(2632);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_UImage2DArray1_Int3_Int1 =
+ TSymbolUniqueId(2633);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_ImageCubeArray1_Int3_Int1 =
+ TSymbolUniqueId(2634);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_IImageCubeArray1_Int3_Int1 =
+ TSymbolUniqueId(2635);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_UImageCubeArray1_Int3_Int1 =
+ TSymbolUniqueId(2636);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_Image1D1_Int1_Int1 =
+ TSymbolUniqueId(2637);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_IImage1D1_Int1_Int1 =
+ TSymbolUniqueId(2638);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_UImage1D1_Int1_Int1 =
+ TSymbolUniqueId(2639);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_Image1DArray1_Int2_Int1 =
+ TSymbolUniqueId(2640);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_IImage1DArray1_Int2_Int1 =
+ TSymbolUniqueId(2641);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_UImage1DArray1_Int2_Int1 =
+ TSymbolUniqueId(2642);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_ImageRect1_Int2_Int1 =
+ TSymbolUniqueId(2643);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_IImageRect1_Int2_Int1 =
+ TSymbolUniqueId(2644);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_UImageRect1_Int2_Int1 =
+ TSymbolUniqueId(2645);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_Image2DMS1_Int2_Int1_Int1 =
+ TSymbolUniqueId(2646);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_IImage2DMS1_Int2_Int1_Int1 =
+ TSymbolUniqueId(2647);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_UImage2DMS1_Int2_Int1_Int1 =
+ TSymbolUniqueId(2648);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_Image2DMSArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(2649);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_IImage2DMSArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(2650);
+ static constexpr const TSymbolUniqueId imageAtomicXorExt_UImage2DMSArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(2651);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image2D1_Int2_UInt1 =
+ TSymbolUniqueId(2652);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage2D1_Int2_UInt1 =
+ TSymbolUniqueId(2653);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage2D1_Int2_UInt1 =
+ TSymbolUniqueId(2654);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image3D1_Int3_UInt1 =
+ TSymbolUniqueId(2655);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage3D1_Int3_UInt1 =
+ TSymbolUniqueId(2656);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage3D1_Int3_UInt1 =
+ TSymbolUniqueId(2657);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_ImageCube1_Int3_UInt1 =
+ TSymbolUniqueId(2658);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImageCube1_Int3_UInt1 =
+ TSymbolUniqueId(2659);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImageCube1_Int3_UInt1 =
+ TSymbolUniqueId(2660);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_ImageBuffer1_Int1_UInt1 =
+ TSymbolUniqueId(2661);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImageBuffer1_Int1_UInt1 =
+ TSymbolUniqueId(2662);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImageBuffer1_Int1_UInt1 =
+ TSymbolUniqueId(2663);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image2DArray1_Int3_UInt1 =
+ TSymbolUniqueId(2664);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage2DArray1_Int3_UInt1 =
+ TSymbolUniqueId(2665);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage2DArray1_Int3_UInt1 =
+ TSymbolUniqueId(2666);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_ImageCubeArray1_Int3_UInt1 =
+ TSymbolUniqueId(2667);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImageCubeArray1_Int3_UInt1 =
+ TSymbolUniqueId(2668);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImageCubeArray1_Int3_UInt1 =
+ TSymbolUniqueId(2669);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image1D1_Int1_UInt1 =
+ TSymbolUniqueId(2670);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage1D1_Int1_UInt1 =
+ TSymbolUniqueId(2671);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage1D1_Int1_UInt1 =
+ TSymbolUniqueId(2672);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image1DArray1_Int2_UInt1 =
+ TSymbolUniqueId(2673);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage1DArray1_Int2_UInt1 =
+ TSymbolUniqueId(2674);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage1DArray1_Int2_UInt1 =
+ TSymbolUniqueId(2675);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_ImageRect1_Int2_UInt1 =
+ TSymbolUniqueId(2676);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImageRect1_Int2_UInt1 =
+ TSymbolUniqueId(2677);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImageRect1_Int2_UInt1 =
+ TSymbolUniqueId(2678);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image2DMS1_Int2_Int1_UInt1 =
+ TSymbolUniqueId(2679);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage2DMS1_Int2_Int1_UInt1 =
+ TSymbolUniqueId(2680);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage2DMS1_Int2_Int1_UInt1 =
+ TSymbolUniqueId(2681);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image2DMSArray1_Int3_Int1_UInt1 =
+ TSymbolUniqueId(2682);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage2DMSArray1_Int3_Int1_UInt1 =
+ TSymbolUniqueId(2683);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage2DMSArray1_Int3_Int1_UInt1 =
+ TSymbolUniqueId(2684);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image2D1_Int2_Int1 =
+ TSymbolUniqueId(2685);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage2D1_Int2_Int1 =
+ TSymbolUniqueId(2686);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage2D1_Int2_Int1 =
+ TSymbolUniqueId(2687);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image3D1_Int3_Int1 =
+ TSymbolUniqueId(2688);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage3D1_Int3_Int1 =
+ TSymbolUniqueId(2689);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage3D1_Int3_Int1 =
+ TSymbolUniqueId(2690);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_ImageCube1_Int3_Int1 =
+ TSymbolUniqueId(2691);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImageCube1_Int3_Int1 =
+ TSymbolUniqueId(2692);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImageCube1_Int3_Int1 =
+ TSymbolUniqueId(2693);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_ImageBuffer1_Int1_Int1 =
+ TSymbolUniqueId(2694);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImageBuffer1_Int1_Int1 =
+ TSymbolUniqueId(2695);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImageBuffer1_Int1_Int1 =
+ TSymbolUniqueId(2696);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image2DArray1_Int3_Int1 =
+ TSymbolUniqueId(2697);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage2DArray1_Int3_Int1 =
+ TSymbolUniqueId(2698);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage2DArray1_Int3_Int1 =
+ TSymbolUniqueId(2699);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_ImageCubeArray1_Int3_Int1 =
+ TSymbolUniqueId(2700);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImageCubeArray1_Int3_Int1 =
+ TSymbolUniqueId(2701);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImageCubeArray1_Int3_Int1 =
+ TSymbolUniqueId(2702);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image1D1_Int1_Int1 =
+ TSymbolUniqueId(2703);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage1D1_Int1_Int1 =
+ TSymbolUniqueId(2704);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage1D1_Int1_Int1 =
+ TSymbolUniqueId(2705);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image1DArray1_Int2_Int1 =
+ TSymbolUniqueId(2706);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage1DArray1_Int2_Int1 =
+ TSymbolUniqueId(2707);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage1DArray1_Int2_Int1 =
+ TSymbolUniqueId(2708);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_ImageRect1_Int2_Int1 =
+ TSymbolUniqueId(2709);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImageRect1_Int2_Int1 =
+ TSymbolUniqueId(2710);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImageRect1_Int2_Int1 =
+ TSymbolUniqueId(2711);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image2DMS1_Int2_Int1_Int1 =
+ TSymbolUniqueId(2712);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage2DMS1_Int2_Int1_Int1 =
+ TSymbolUniqueId(2713);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage2DMS1_Int2_Int1_Int1 =
+ TSymbolUniqueId(2714);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image2DMSArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(2715);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage2DMSArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(2716);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage2DMSArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(2717);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image2D1_Int2_Float1 =
+ TSymbolUniqueId(2718);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage2D1_Int2_Float1 =
+ TSymbolUniqueId(2719);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage2D1_Int2_Float1 =
+ TSymbolUniqueId(2720);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image3D1_Int3_Float1 =
+ TSymbolUniqueId(2721);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage3D1_Int3_Float1 =
+ TSymbolUniqueId(2722);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage3D1_Int3_Float1 =
+ TSymbolUniqueId(2723);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_ImageCube1_Int3_Float1 =
+ TSymbolUniqueId(2724);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImageCube1_Int3_Float1 =
+ TSymbolUniqueId(2725);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImageCube1_Int3_Float1 =
+ TSymbolUniqueId(2726);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_ImageBuffer1_Int1_Float1 =
+ TSymbolUniqueId(2727);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImageBuffer1_Int1_Float1 =
+ TSymbolUniqueId(2728);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImageBuffer1_Int1_Float1 =
+ TSymbolUniqueId(2729);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image2DArray1_Int3_Float1 =
+ TSymbolUniqueId(2730);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage2DArray1_Int3_Float1 =
+ TSymbolUniqueId(2731);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage2DArray1_Int3_Float1 =
+ TSymbolUniqueId(2732);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_ImageCubeArray1_Int3_Float1 =
+ TSymbolUniqueId(2733);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImageCubeArray1_Int3_Float1 =
+ TSymbolUniqueId(2734);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImageCubeArray1_Int3_Float1 =
+ TSymbolUniqueId(2735);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image1D1_Int1_Float1 =
+ TSymbolUniqueId(2736);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage1D1_Int1_Float1 =
+ TSymbolUniqueId(2737);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage1D1_Int1_Float1 =
+ TSymbolUniqueId(2738);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image1DArray1_Int2_Float1 =
+ TSymbolUniqueId(2739);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage1DArray1_Int2_Float1 =
+ TSymbolUniqueId(2740);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage1DArray1_Int2_Float1 =
+ TSymbolUniqueId(2741);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_ImageRect1_Int2_Float1 =
+ TSymbolUniqueId(2742);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImageRect1_Int2_Float1 =
+ TSymbolUniqueId(2743);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImageRect1_Int2_Float1 =
+ TSymbolUniqueId(2744);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image2DMS1_Int2_Int1_Float1 =
+ TSymbolUniqueId(2745);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_IImage2DMS1_Int2_Int1_Float1 =
+ TSymbolUniqueId(2746);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_UImage2DMS1_Int2_Int1_Float1 =
+ TSymbolUniqueId(2747);
+ static constexpr const TSymbolUniqueId imageAtomicExchangeExt_Image2DMSArray1_Int3_Int1_Float1 =
+ TSymbolUniqueId(2748);
+ static constexpr const TSymbolUniqueId
+ imageAtomicExchangeExt_IImage2DMSArray1_Int3_Int1_Float1 = TSymbolUniqueId(2749);
+ static constexpr const TSymbolUniqueId
+ imageAtomicExchangeExt_UImage2DMSArray1_Int3_Int1_Float1 = TSymbolUniqueId(2750);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_Image2D1_Int2_UInt1_UInt1 =
+ TSymbolUniqueId(2751);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImage2D1_Int2_UInt1_UInt1 =
+ TSymbolUniqueId(2752);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImage2D1_Int2_UInt1_UInt1 =
+ TSymbolUniqueId(2753);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_Image3D1_Int3_UInt1_UInt1 =
+ TSymbolUniqueId(2754);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImage3D1_Int3_UInt1_UInt1 =
+ TSymbolUniqueId(2755);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImage3D1_Int3_UInt1_UInt1 =
+ TSymbolUniqueId(2756);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_ImageCube1_Int3_UInt1_UInt1 =
+ TSymbolUniqueId(2757);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImageCube1_Int3_UInt1_UInt1 =
+ TSymbolUniqueId(2758);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImageCube1_Int3_UInt1_UInt1 =
+ TSymbolUniqueId(2759);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_ImageBuffer1_Int1_UInt1_UInt1 =
+ TSymbolUniqueId(2760);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImageBuffer1_Int1_UInt1_UInt1 =
+ TSymbolUniqueId(2761);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImageBuffer1_Int1_UInt1_UInt1 =
+ TSymbolUniqueId(2762);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_Image2DArray1_Int3_UInt1_UInt1 =
+ TSymbolUniqueId(2763);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImage2DArray1_Int3_UInt1_UInt1 =
+ TSymbolUniqueId(2764);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImage2DArray1_Int3_UInt1_UInt1 =
+ TSymbolUniqueId(2765);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_ImageCubeArray1_Int3_UInt1_UInt1 =
+ TSymbolUniqueId(2766);
+ static constexpr const TSymbolUniqueId
+ imageAtomicCompSwapExt_IImageCubeArray1_Int3_UInt1_UInt1 = TSymbolUniqueId(2767);
+ static constexpr const TSymbolUniqueId
+ imageAtomicCompSwapExt_UImageCubeArray1_Int3_UInt1_UInt1 = TSymbolUniqueId(2768);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_Image1D1_Int1_UInt1_UInt1 =
+ TSymbolUniqueId(2769);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImage1D1_Int1_UInt1_UInt1 =
+ TSymbolUniqueId(2770);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImage1D1_Int1_UInt1_UInt1 =
+ TSymbolUniqueId(2771);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_Image1DArray1_Int2_UInt1_UInt1 =
+ TSymbolUniqueId(2772);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImage1DArray1_Int2_UInt1_UInt1 =
+ TSymbolUniqueId(2773);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImage1DArray1_Int2_UInt1_UInt1 =
+ TSymbolUniqueId(2774);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_ImageRect1_Int2_UInt1_UInt1 =
+ TSymbolUniqueId(2775);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImageRect1_Int2_UInt1_UInt1 =
+ TSymbolUniqueId(2776);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImageRect1_Int2_UInt1_UInt1 =
+ TSymbolUniqueId(2777);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_Image2DMS1_Int2_Int1_UInt1_UInt1 =
+ TSymbolUniqueId(2778);
+ static constexpr const TSymbolUniqueId
+ imageAtomicCompSwapExt_IImage2DMS1_Int2_Int1_UInt1_UInt1 = TSymbolUniqueId(2779);
+ static constexpr const TSymbolUniqueId
+ imageAtomicCompSwapExt_UImage2DMS1_Int2_Int1_UInt1_UInt1 = TSymbolUniqueId(2780);
+ static constexpr const TSymbolUniqueId
+ imageAtomicCompSwapExt_Image2DMSArray1_Int3_Int1_UInt1_UInt1 = TSymbolUniqueId(2781);
+ static constexpr const TSymbolUniqueId
+ imageAtomicCompSwapExt_IImage2DMSArray1_Int3_Int1_UInt1_UInt1 = TSymbolUniqueId(2782);
+ static constexpr const TSymbolUniqueId
+ imageAtomicCompSwapExt_UImage2DMSArray1_Int3_Int1_UInt1_UInt1 = TSymbolUniqueId(2783);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_Image2D1_Int2_Int1_Int1 =
+ TSymbolUniqueId(2784);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImage2D1_Int2_Int1_Int1 =
+ TSymbolUniqueId(2785);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImage2D1_Int2_Int1_Int1 =
+ TSymbolUniqueId(2786);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_Image3D1_Int3_Int1_Int1 =
+ TSymbolUniqueId(2787);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImage3D1_Int3_Int1_Int1 =
+ TSymbolUniqueId(2788);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImage3D1_Int3_Int1_Int1 =
+ TSymbolUniqueId(2789);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_ImageCube1_Int3_Int1_Int1 =
+ TSymbolUniqueId(2790);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImageCube1_Int3_Int1_Int1 =
+ TSymbolUniqueId(2791);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImageCube1_Int3_Int1_Int1 =
+ TSymbolUniqueId(2792);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_ImageBuffer1_Int1_Int1_Int1 =
+ TSymbolUniqueId(2793);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImageBuffer1_Int1_Int1_Int1 =
+ TSymbolUniqueId(2794);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImageBuffer1_Int1_Int1_Int1 =
+ TSymbolUniqueId(2795);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_Image2DArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(2796);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImage2DArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(2797);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImage2DArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(2798);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_ImageCubeArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(2799);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImageCubeArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(2800);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImageCubeArray1_Int3_Int1_Int1 =
+ TSymbolUniqueId(2801);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_Image1D1_Int1_Int1_Int1 =
+ TSymbolUniqueId(2802);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImage1D1_Int1_Int1_Int1 =
+ TSymbolUniqueId(2803);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImage1D1_Int1_Int1_Int1 =
+ TSymbolUniqueId(2804);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_Image1DArray1_Int2_Int1_Int1 =
+ TSymbolUniqueId(2805);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImage1DArray1_Int2_Int1_Int1 =
+ TSymbolUniqueId(2806);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImage1DArray1_Int2_Int1_Int1 =
+ TSymbolUniqueId(2807);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_ImageRect1_Int2_Int1_Int1 =
+ TSymbolUniqueId(2808);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImageRect1_Int2_Int1_Int1 =
+ TSymbolUniqueId(2809);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImageRect1_Int2_Int1_Int1 =
+ TSymbolUniqueId(2810);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_Image2DMS1_Int2_Int1_Int1_Int1 =
+ TSymbolUniqueId(2811);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_IImage2DMS1_Int2_Int1_Int1_Int1 =
+ TSymbolUniqueId(2812);
+ static constexpr const TSymbolUniqueId imageAtomicCompSwapExt_UImage2DMS1_Int2_Int1_Int1_Int1 =
+ TSymbolUniqueId(2813);
+ static constexpr const TSymbolUniqueId
+ imageAtomicCompSwapExt_Image2DMSArray1_Int3_Int1_Int1_Int1 = TSymbolUniqueId(2814);
+ static constexpr const TSymbolUniqueId
+ imageAtomicCompSwapExt_IImage2DMSArray1_Int3_Int1_Int1_Int1 = TSymbolUniqueId(2815);
+ static constexpr const TSymbolUniqueId
+ imageAtomicCompSwapExt_UImage2DMSArray1_Int3_Int1_Int1_Int1 = TSymbolUniqueId(2816);
+ static constexpr const TSymbolUniqueId pixelLocalLoadANGLE_PixelLocalANGLE1 =
+ TSymbolUniqueId(2817);
+ static constexpr const TSymbolUniqueId pt01g = TSymbolUniqueId(2818);
+ static constexpr const TSymbolUniqueId pixelLocalLoadANGLE_IPixelLocalANGLE1 =
+ TSymbolUniqueId(2819);
+ static constexpr const TSymbolUniqueId pt01h = TSymbolUniqueId(2820);
+ static constexpr const TSymbolUniqueId pixelLocalLoadANGLE_UPixelLocalANGLE1 =
+ TSymbolUniqueId(2821);
+ static constexpr const TSymbolUniqueId pt01i = TSymbolUniqueId(2822);
+ static constexpr const TSymbolUniqueId pixelLocalStoreANGLE_PixelLocalANGLE1_Float4 =
+ TSymbolUniqueId(2823);
+ static constexpr const TSymbolUniqueId pixelLocalStoreANGLE_IPixelLocalANGLE1_Int4 =
+ TSymbolUniqueId(2824);
+ static constexpr const TSymbolUniqueId pixelLocalStoreANGLE_UPixelLocalANGLE1_UInt4 =
+ TSymbolUniqueId(2825);
+ static constexpr const TSymbolUniqueId beginInvocationInterlockNV = TSymbolUniqueId(2826);
+ static constexpr const TSymbolUniqueId endInvocationInterlockNV = TSymbolUniqueId(2827);
+ static constexpr const TSymbolUniqueId beginFragmentShaderOrderingINTEL = TSymbolUniqueId(2828);
+ static constexpr const TSymbolUniqueId beginInvocationInterlockARB = TSymbolUniqueId(2829);
+ static constexpr const TSymbolUniqueId endInvocationInterlockARB = TSymbolUniqueId(2830);
+ static constexpr const TSymbolUniqueId noise1_Float1 = TSymbolUniqueId(2831);
+ static constexpr const TSymbolUniqueId noise1_Float2 = TSymbolUniqueId(2832);
+ static constexpr const TSymbolUniqueId noise1_Float3 = TSymbolUniqueId(2833);
+ static constexpr const TSymbolUniqueId noise1_Float4 = TSymbolUniqueId(2834);
+ static constexpr const TSymbolUniqueId noise2_Float1 = TSymbolUniqueId(2835);
+ static constexpr const TSymbolUniqueId noise2_Float2 = TSymbolUniqueId(2836);
+ static constexpr const TSymbolUniqueId noise2_Float3 = TSymbolUniqueId(2837);
+ static constexpr const TSymbolUniqueId noise2_Float4 = TSymbolUniqueId(2838);
+ static constexpr const TSymbolUniqueId noise3_Float1 = TSymbolUniqueId(2839);
+ static constexpr const TSymbolUniqueId noise3_Float2 = TSymbolUniqueId(2840);
+ static constexpr const TSymbolUniqueId noise3_Float3 = TSymbolUniqueId(2841);
+ static constexpr const TSymbolUniqueId noise3_Float4 = TSymbolUniqueId(2842);
+ static constexpr const TSymbolUniqueId noise4_Float1 = TSymbolUniqueId(2843);
+ static constexpr const TSymbolUniqueId noise4_Float2 = TSymbolUniqueId(2844);
+ static constexpr const TSymbolUniqueId noise4_Float3 = TSymbolUniqueId(2845);
+ static constexpr const TSymbolUniqueId noise4_Float4 = TSymbolUniqueId(2846);
+ static constexpr const TSymbolUniqueId memoryBarrier = TSymbolUniqueId(2847);
+ static constexpr const TSymbolUniqueId memoryBarrierAtomicCounter = TSymbolUniqueId(2848);
+ static constexpr const TSymbolUniqueId memoryBarrierBuffer = TSymbolUniqueId(2849);
+ static constexpr const TSymbolUniqueId memoryBarrierImage = TSymbolUniqueId(2850);
+ static constexpr const TSymbolUniqueId barrier = TSymbolUniqueId(2851);
+ static constexpr const TSymbolUniqueId memoryBarrierShared = TSymbolUniqueId(2852);
+ static constexpr const TSymbolUniqueId groupMemoryBarrier = TSymbolUniqueId(2853);
+ static constexpr const TSymbolUniqueId barrierTCS = TSymbolUniqueId(2854);
+ static constexpr const TSymbolUniqueId barrierTCSES3_2 = TSymbolUniqueId(2855);
+ static constexpr const TSymbolUniqueId EmitVertex = TSymbolUniqueId(2856);
+ static constexpr const TSymbolUniqueId EmitVertexES3_2 = TSymbolUniqueId(2857);
+ static constexpr const TSymbolUniqueId EndPrimitive = TSymbolUniqueId(2858);
+ static constexpr const TSymbolUniqueId EndPrimitiveES3_2 = TSymbolUniqueId(2859);
+ static constexpr const TSymbolUniqueId EmitStreamVertex_Int1 = TSymbolUniqueId(2860);
+ static constexpr const TSymbolUniqueId EndStreamPrimitive_Int1 = TSymbolUniqueId(2861);
+ static constexpr const TSymbolUniqueId subpassLoad_SubpassInput1 = TSymbolUniqueId(2862);
+ static constexpr const TSymbolUniqueId pt01j = TSymbolUniqueId(2863);
+ static constexpr const TSymbolUniqueId subpassLoad_ISubpassInput1 = TSymbolUniqueId(2864);
+ static constexpr const TSymbolUniqueId pt01k = TSymbolUniqueId(2865);
+ static constexpr const TSymbolUniqueId subpassLoad_USubpassInput1 = TSymbolUniqueId(2866);
+ static constexpr const TSymbolUniqueId pt01l = TSymbolUniqueId(2867);
+ static constexpr const TSymbolUniqueId subpassLoad_SubpassInputMS1_Int1 = TSymbolUniqueId(2868);
+ static constexpr const TSymbolUniqueId pt01m = TSymbolUniqueId(2869);
+ static constexpr const TSymbolUniqueId subpassLoad_ISubpassInputMS1_Int1 =
+ TSymbolUniqueId(2870);
+ static constexpr const TSymbolUniqueId pt01n = TSymbolUniqueId(2871);
+ static constexpr const TSymbolUniqueId subpassLoad_USubpassInputMS1_Int1 =
+ TSymbolUniqueId(2872);
+ static constexpr const TSymbolUniqueId pt01o = TSymbolUniqueId(2873);
+ static constexpr const TSymbolUniqueId anyInvocation_Bool1 = TSymbolUniqueId(2874);
+ static constexpr const TSymbolUniqueId allInvocations_Bool1 = TSymbolUniqueId(2875);
+ static constexpr const TSymbolUniqueId allInvocationsEqual_Bool1 = TSymbolUniqueId(2876);
+ static constexpr const TSymbolUniqueId gl_DepthRangeParameters = TSymbolUniqueId(2877);
+ static constexpr const TSymbolUniqueId gl_DepthRange = TSymbolUniqueId(2878);
+ static constexpr const TSymbolUniqueId gl_NumSamples = TSymbolUniqueId(2879);
+ static constexpr const TSymbolUniqueId gl_NumSamplesES3_2 = TSymbolUniqueId(2880);
+ static constexpr const TSymbolUniqueId gl_MaxVertexAttribs = TSymbolUniqueId(2881);
+ static constexpr const TSymbolUniqueId gl_MaxVertexUniformVectors = TSymbolUniqueId(2882);
+ static constexpr const TSymbolUniqueId gl_MaxVertexTextureImageUnits = TSymbolUniqueId(2883);
+ static constexpr const TSymbolUniqueId gl_MaxCombinedTextureImageUnits = TSymbolUniqueId(2884);
+ static constexpr const TSymbolUniqueId gl_MaxTextureImageUnits = TSymbolUniqueId(2885);
+ static constexpr const TSymbolUniqueId gl_MaxFragmentUniformVectors = TSymbolUniqueId(2886);
+ static constexpr const TSymbolUniqueId gl_MaxVaryingVectors = TSymbolUniqueId(2887);
+ static constexpr const TSymbolUniqueId gl_MaxDrawBuffers = TSymbolUniqueId(2888);
+ static constexpr const TSymbolUniqueId gl_MaxDualSourceDrawBuffersEXT = TSymbolUniqueId(2889);
+ static constexpr const TSymbolUniqueId gl_MaxVertexOutputVectors = TSymbolUniqueId(2890);
+ static constexpr const TSymbolUniqueId gl_MaxFragmentInputVectors = TSymbolUniqueId(2891);
+ static constexpr const TSymbolUniqueId gl_MinProgramTexelOffset = TSymbolUniqueId(2892);
+ static constexpr const TSymbolUniqueId gl_MaxProgramTexelOffset = TSymbolUniqueId(2893);
+ static constexpr const TSymbolUniqueId gl_MaxImageUnits = TSymbolUniqueId(2894);
+ static constexpr const TSymbolUniqueId gl_MaxVertexImageUniforms = TSymbolUniqueId(2895);
+ static constexpr const TSymbolUniqueId gl_MaxFragmentImageUniforms = TSymbolUniqueId(2896);
+ static constexpr const TSymbolUniqueId gl_MaxComputeImageUniforms = TSymbolUniqueId(2897);
+ static constexpr const TSymbolUniqueId gl_MaxCombinedImageUniforms = TSymbolUniqueId(2898);
+ static constexpr const TSymbolUniqueId gl_MaxCombinedShaderOutputResources =
+ TSymbolUniqueId(2899);
+ static constexpr const TSymbolUniqueId gl_MaxComputeWorkGroupCount = TSymbolUniqueId(2900);
+ static constexpr const TSymbolUniqueId gl_MaxComputeWorkGroupSize = TSymbolUniqueId(2901);
+ static constexpr const TSymbolUniqueId gl_MaxComputeUniformComponents = TSymbolUniqueId(2902);
+ static constexpr const TSymbolUniqueId gl_MaxComputeTextureImageUnits = TSymbolUniqueId(2903);
+ static constexpr const TSymbolUniqueId gl_MaxComputeAtomicCounters = TSymbolUniqueId(2904);
+ static constexpr const TSymbolUniqueId gl_MaxComputeAtomicCounterBuffers =
+ TSymbolUniqueId(2905);
+ static constexpr const TSymbolUniqueId gl_MaxVertexAtomicCounters = TSymbolUniqueId(2906);
+ static constexpr const TSymbolUniqueId gl_MaxFragmentAtomicCounters = TSymbolUniqueId(2907);
+ static constexpr const TSymbolUniqueId gl_MaxCombinedAtomicCounters = TSymbolUniqueId(2908);
+ static constexpr const TSymbolUniqueId gl_MaxAtomicCounterBindings = TSymbolUniqueId(2909);
+ static constexpr const TSymbolUniqueId gl_MaxVertexAtomicCounterBuffers = TSymbolUniqueId(2910);
+ static constexpr const TSymbolUniqueId gl_MaxFragmentAtomicCounterBuffers =
+ TSymbolUniqueId(2911);
+ static constexpr const TSymbolUniqueId gl_MaxCombinedAtomicCounterBuffers =
+ TSymbolUniqueId(2912);
+ static constexpr const TSymbolUniqueId gl_MaxAtomicCounterBufferSize = TSymbolUniqueId(2913);
+ static constexpr const TSymbolUniqueId gl_MaxGeometryInputComponents = TSymbolUniqueId(2914);
+ static constexpr const TSymbolUniqueId gl_MaxGeometryInputComponentsES3_2 =
+ TSymbolUniqueId(2915);
+ static constexpr const TSymbolUniqueId gl_MaxGeometryOutputComponents = TSymbolUniqueId(2916);
+ static constexpr const TSymbolUniqueId gl_MaxGeometryOutputComponentsES3_2 =
+ TSymbolUniqueId(2917);
+ static constexpr const TSymbolUniqueId gl_MaxGeometryImageUniforms = TSymbolUniqueId(2918);
+ static constexpr const TSymbolUniqueId gl_MaxGeometryImageUniformsES3_2 = TSymbolUniqueId(2919);
+ static constexpr const TSymbolUniqueId gl_MaxGeometryTextureImageUnits = TSymbolUniqueId(2920);
+ static constexpr const TSymbolUniqueId gl_MaxGeometryTextureImageUnitsES3_2 =
+ TSymbolUniqueId(2921);
+ static constexpr const TSymbolUniqueId gl_MaxGeometryOutputVertices = TSymbolUniqueId(2922);
+ static constexpr const TSymbolUniqueId gl_MaxGeometryOutputVerticesES3_2 =
+ TSymbolUniqueId(2923);
+ static constexpr const TSymbolUniqueId gl_MaxGeometryTotalOutputComponents =
+ TSymbolUniqueId(2924);
+ static constexpr const TSymbolUniqueId gl_MaxGeometryTotalOutputComponentsES3_2 =
+ TSymbolUniqueId(2925);
+ static constexpr const TSymbolUniqueId gl_MaxGeometryUniformComponents = TSymbolUniqueId(2926);
+ static constexpr const TSymbolUniqueId gl_MaxGeometryUniformComponentsES3_2 =
+ TSymbolUniqueId(2927);
+ static constexpr const TSymbolUniqueId gl_MaxGeometryAtomicCounters = TSymbolUniqueId(2928);
+ static constexpr const TSymbolUniqueId gl_MaxGeometryAtomicCountersES3_2 =
+ TSymbolUniqueId(2929);
+ static constexpr const TSymbolUniqueId gl_MaxGeometryAtomicCounterBuffers =
+ TSymbolUniqueId(2930);
+ static constexpr const TSymbolUniqueId gl_MaxGeometryAtomicCounterBuffersES3_2 =
+ TSymbolUniqueId(2931);
+ static constexpr const TSymbolUniqueId gl_MaxTessControlInputComponents = TSymbolUniqueId(2932);
+ static constexpr const TSymbolUniqueId gl_MaxTessControlInputComponentsES3_2 =
+ TSymbolUniqueId(2933);
+ static constexpr const TSymbolUniqueId gl_MaxTessControlOutputComponents =
+ TSymbolUniqueId(2934);
+ static constexpr const TSymbolUniqueId gl_MaxTessControlOutputComponentsES3_2 =
+ TSymbolUniqueId(2935);
+ static constexpr const TSymbolUniqueId gl_MaxTessControlTextureImageUnits =
+ TSymbolUniqueId(2936);
+ static constexpr const TSymbolUniqueId gl_MaxTessControlTextureImageUnitsES3_2 =
+ TSymbolUniqueId(2937);
+ static constexpr const TSymbolUniqueId gl_MaxTessControlUniformComponents =
+ TSymbolUniqueId(2938);
+ static constexpr const TSymbolUniqueId gl_MaxTessControlUniformComponentsES3_2 =
+ TSymbolUniqueId(2939);
+ static constexpr const TSymbolUniqueId gl_MaxTessControlTotalOutputComponents =
+ TSymbolUniqueId(2940);
+ static constexpr const TSymbolUniqueId gl_MaxTessControlTotalOutputComponentsES3_2 =
+ TSymbolUniqueId(2941);
+ static constexpr const TSymbolUniqueId gl_MaxTessControlImageUniforms = TSymbolUniqueId(2942);
+ static constexpr const TSymbolUniqueId gl_MaxTessControlImageUniformsES3_2 =
+ TSymbolUniqueId(2943);
+ static constexpr const TSymbolUniqueId gl_MaxTessControlAtomicCounters = TSymbolUniqueId(2944);
+ static constexpr const TSymbolUniqueId gl_MaxTessControlAtomicCountersES3_2 =
+ TSymbolUniqueId(2945);
+ static constexpr const TSymbolUniqueId gl_MaxTessControlAtomicCounterBuffers =
+ TSymbolUniqueId(2946);
+ static constexpr const TSymbolUniqueId gl_MaxTessControlAtomicCounterBuffersES3_2 =
+ TSymbolUniqueId(2947);
+ static constexpr const TSymbolUniqueId gl_MaxTessPatchComponents = TSymbolUniqueId(2948);
+ static constexpr const TSymbolUniqueId gl_MaxTessPatchComponentsES3_2 = TSymbolUniqueId(2949);
+ static constexpr const TSymbolUniqueId gl_MaxPatchVertices = TSymbolUniqueId(2950);
+ static constexpr const TSymbolUniqueId gl_MaxPatchVerticesES3_2 = TSymbolUniqueId(2951);
+ static constexpr const TSymbolUniqueId gl_MaxTessGenLevel = TSymbolUniqueId(2952);
+ static constexpr const TSymbolUniqueId gl_MaxTessGenLevelES3_2 = TSymbolUniqueId(2953);
+ static constexpr const TSymbolUniqueId gl_MaxTessEvaluationInputComponents =
+ TSymbolUniqueId(2954);
+ static constexpr const TSymbolUniqueId gl_MaxTessEvaluationInputComponentsES3_2 =
+ TSymbolUniqueId(2955);
+ static constexpr const TSymbolUniqueId gl_MaxTessEvaluationOutputComponents =
+ TSymbolUniqueId(2956);
+ static constexpr const TSymbolUniqueId gl_MaxTessEvaluationOutputComponentsES3_2 =
+ TSymbolUniqueId(2957);
+ static constexpr const TSymbolUniqueId gl_MaxTessEvaluationTextureImageUnits =
+ TSymbolUniqueId(2958);
+ static constexpr const TSymbolUniqueId gl_MaxTessEvaluationTextureImageUnitsES3_2 =
+ TSymbolUniqueId(2959);
+ static constexpr const TSymbolUniqueId gl_MaxTessEvaluationUniformComponents =
+ TSymbolUniqueId(2960);
+ static constexpr const TSymbolUniqueId gl_MaxTessEvaluationUniformComponentsES3_2 =
+ TSymbolUniqueId(2961);
+ static constexpr const TSymbolUniqueId gl_MaxTessEvaluationImageUniforms =
+ TSymbolUniqueId(2962);
+ static constexpr const TSymbolUniqueId gl_MaxTessEvaluationImageUniformsES3_2 =
+ TSymbolUniqueId(2963);
+ static constexpr const TSymbolUniqueId gl_MaxTessEvaluationAtomicCounters =
+ TSymbolUniqueId(2964);
+ static constexpr const TSymbolUniqueId gl_MaxTessEvaluationAtomicCountersES3_2 =
+ TSymbolUniqueId(2965);
+ static constexpr const TSymbolUniqueId gl_MaxTessEvaluationAtomicCounterBuffers =
+ TSymbolUniqueId(2966);
+ static constexpr const TSymbolUniqueId gl_MaxTessEvaluationAtomicCounterBuffersES3_2 =
+ TSymbolUniqueId(2967);
+ static constexpr const TSymbolUniqueId gl_MaxSamples = TSymbolUniqueId(2968);
+ static constexpr const TSymbolUniqueId gl_MaxSamplesES3_2 = TSymbolUniqueId(2969);
+ static constexpr const TSymbolUniqueId gl_MaxClipDistancesAPPLE = TSymbolUniqueId(2970);
+ static constexpr const TSymbolUniqueId gl_MaxCullDistancesEXT = TSymbolUniqueId(2971);
+ static constexpr const TSymbolUniqueId gl_MaxCombinedClipAndCullDistancesEXT =
+ TSymbolUniqueId(2972);
+ static constexpr const TSymbolUniqueId gl_FragCoord = TSymbolUniqueId(2973);
+ static constexpr const TSymbolUniqueId gl_FrontFacing = TSymbolUniqueId(2974);
+ static constexpr const TSymbolUniqueId gl_PointCoord = TSymbolUniqueId(2975);
+ static constexpr const TSymbolUniqueId gl_FragColor = TSymbolUniqueId(2976);
+ static constexpr const TSymbolUniqueId gl_FragData = TSymbolUniqueId(2977);
+ static constexpr const TSymbolUniqueId gl_FragDepth = TSymbolUniqueId(2978);
+ static constexpr const TSymbolUniqueId gl_HelperInvocation = TSymbolUniqueId(2979);
+ static constexpr const TSymbolUniqueId gl_FragCoord300 = TSymbolUniqueId(2980);
+ static constexpr const TSymbolUniqueId gl_SecondaryFragColorEXT = TSymbolUniqueId(2981);
+ static constexpr const TSymbolUniqueId gl_SecondaryFragDataEXT = TSymbolUniqueId(2982);
+ static constexpr const TSymbolUniqueId gl_FragDepthEXT = TSymbolUniqueId(2983);
+ static constexpr const TSymbolUniqueId gl_LastFragData = TSymbolUniqueId(2984);
+ static constexpr const TSymbolUniqueId gl_LastFragColor = TSymbolUniqueId(2985);
+ static constexpr const TSymbolUniqueId gl_LastFragDataNV = TSymbolUniqueId(2986);
+ static constexpr const TSymbolUniqueId gl_LastFragColorARM = TSymbolUniqueId(2987);
+ static constexpr const TSymbolUniqueId gl_PrimitiveID = TSymbolUniqueId(2988);
+ static constexpr const TSymbolUniqueId gl_PrimitiveIDES3_2 = TSymbolUniqueId(2989);
+ static constexpr const TSymbolUniqueId gl_Layer = TSymbolUniqueId(2990);
+ static constexpr const TSymbolUniqueId gl_LayerES3_2 = TSymbolUniqueId(2991);
+ static constexpr const TSymbolUniqueId gl_SampleID = TSymbolUniqueId(2992);
+ static constexpr const TSymbolUniqueId gl_SampleIDES3_2 = TSymbolUniqueId(2993);
+ static constexpr const TSymbolUniqueId gl_SamplePosition = TSymbolUniqueId(2994);
+ static constexpr const TSymbolUniqueId gl_SamplePositionES3_2 = TSymbolUniqueId(2995);
+ static constexpr const TSymbolUniqueId gl_SampleMaskIn = TSymbolUniqueId(2996);
+ static constexpr const TSymbolUniqueId gl_SampleMaskInES3_2 = TSymbolUniqueId(2997);
+ static constexpr const TSymbolUniqueId gl_SampleMask = TSymbolUniqueId(2998);
+ static constexpr const TSymbolUniqueId gl_SampleMaskES3_2 = TSymbolUniqueId(2999);
+ static constexpr const TSymbolUniqueId gl_CullDistance = TSymbolUniqueId(3000);
+ static constexpr const TSymbolUniqueId gl_ClipDistance = TSymbolUniqueId(3001);
+ static constexpr const TSymbolUniqueId gl_Position = TSymbolUniqueId(3002);
+ static constexpr const TSymbolUniqueId gl_PointSize = TSymbolUniqueId(3003);
+ static constexpr const TSymbolUniqueId gl_InstanceID = TSymbolUniqueId(3004);
+ static constexpr const TSymbolUniqueId gl_InstanceIndex = TSymbolUniqueId(3005);
+ static constexpr const TSymbolUniqueId gl_VertexID = TSymbolUniqueId(3006);
+ static constexpr const TSymbolUniqueId gl_VertexIndex = TSymbolUniqueId(3007);
+ static constexpr const TSymbolUniqueId gl_ViewportIndex = TSymbolUniqueId(3008);
+ static constexpr const TSymbolUniqueId gl_LayerVS = TSymbolUniqueId(3009);
+ static constexpr const TSymbolUniqueId gl_PointSize300 = TSymbolUniqueId(3010);
+ static constexpr const TSymbolUniqueId gl_DrawID = TSymbolUniqueId(3011);
+ static constexpr const TSymbolUniqueId gl_BaseVertex = TSymbolUniqueId(3012);
+ static constexpr const TSymbolUniqueId gl_BaseInstance = TSymbolUniqueId(3013);
+ static constexpr const TSymbolUniqueId angle_BaseVertex = TSymbolUniqueId(3014);
+ static constexpr const TSymbolUniqueId angle_BaseInstance = TSymbolUniqueId(3015);
+ static constexpr const TSymbolUniqueId gl_ClipDistanceAPPLE = TSymbolUniqueId(3016);
+ static constexpr const TSymbolUniqueId gl_CullDistanceEXT = TSymbolUniqueId(3017);
+ static constexpr const TSymbolUniqueId gl_NumWorkGroups = TSymbolUniqueId(3018);
+ static constexpr const TSymbolUniqueId gl_WorkGroupSize = TSymbolUniqueId(3019);
+ static constexpr const TSymbolUniqueId gl_WorkGroupID = TSymbolUniqueId(3020);
+ static constexpr const TSymbolUniqueId gl_LocalInvocationID = TSymbolUniqueId(3021);
+ static constexpr const TSymbolUniqueId gl_GlobalInvocationID = TSymbolUniqueId(3022);
+ static constexpr const TSymbolUniqueId gl_LocalInvocationIndex = TSymbolUniqueId(3023);
+ static constexpr const TSymbolUniqueId gl_PrimitiveIDIn = TSymbolUniqueId(3024);
+ static constexpr const TSymbolUniqueId gl_PrimitiveIDInES3_2 = TSymbolUniqueId(3025);
+ static constexpr const TSymbolUniqueId gl_InvocationID = TSymbolUniqueId(3026);
+ static constexpr const TSymbolUniqueId gl_InvocationIDES3_2 = TSymbolUniqueId(3027);
+ static constexpr const TSymbolUniqueId gl_PrimitiveIDGS = TSymbolUniqueId(3028);
+ static constexpr const TSymbolUniqueId gl_PrimitiveIDGSES3_2 = TSymbolUniqueId(3029);
+ static constexpr const TSymbolUniqueId gl_LayerGS = TSymbolUniqueId(3030);
+ static constexpr const TSymbolUniqueId gl_LayerGSES3_2 = TSymbolUniqueId(3031);
+ static constexpr const TSymbolUniqueId gl_PerVertex = TSymbolUniqueId(3032);
+ static constexpr const TSymbolUniqueId gl_PerVertexES3_2 = TSymbolUniqueId(3033);
+ static constexpr const TSymbolUniqueId gl_in = TSymbolUniqueId(3034);
+ static constexpr const TSymbolUniqueId gl_inES3_2 = TSymbolUniqueId(3035);
+ static constexpr const TSymbolUniqueId gl_PerVertexOutBlock = TSymbolUniqueId(3036);
+ static constexpr const TSymbolUniqueId gl_PerVertexOutBlockES3_2 = TSymbolUniqueId(3037);
+ static constexpr const TSymbolUniqueId gl_PositionGS = TSymbolUniqueId(3038);
+ static constexpr const TSymbolUniqueId gl_PositionGSES3_2 = TSymbolUniqueId(3039);
+ static constexpr const TSymbolUniqueId gl_PatchVerticesInTCS = TSymbolUniqueId(3040);
+ static constexpr const TSymbolUniqueId gl_PatchVerticesInTCSES3_2 = TSymbolUniqueId(3041);
+ static constexpr const TSymbolUniqueId gl_InvocationIDTCS = TSymbolUniqueId(3042);
+ static constexpr const TSymbolUniqueId gl_InvocationIDTCSES3_2 = TSymbolUniqueId(3043);
+ static constexpr const TSymbolUniqueId gl_PrimitiveIDTCS = TSymbolUniqueId(3044);
+ static constexpr const TSymbolUniqueId gl_PrimitiveIDTCSES3_2 = TSymbolUniqueId(3045);
+ static constexpr const TSymbolUniqueId gl_TessLevelOuterTCS = TSymbolUniqueId(3046);
+ static constexpr const TSymbolUniqueId gl_TessLevelOuterTCSES3_2 = TSymbolUniqueId(3047);
+ static constexpr const TSymbolUniqueId gl_TessLevelInnerTCS = TSymbolUniqueId(3048);
+ static constexpr const TSymbolUniqueId gl_TessLevelInnerTCSES3_2 = TSymbolUniqueId(3049);
+ static constexpr const TSymbolUniqueId gl_PerVertexTCS = TSymbolUniqueId(3050);
+ static constexpr const TSymbolUniqueId gl_PerVertexTCSES3_2 = TSymbolUniqueId(3051);
+ static constexpr const TSymbolUniqueId gl_inTCS = TSymbolUniqueId(3052);
+ static constexpr const TSymbolUniqueId gl_inTCSES3_2 = TSymbolUniqueId(3053);
+ static constexpr const TSymbolUniqueId gl_outTCS = TSymbolUniqueId(3054);
+ static constexpr const TSymbolUniqueId gl_outTCSES3_2 = TSymbolUniqueId(3055);
+ static constexpr const TSymbolUniqueId gl_BoundingBoxTCS = TSymbolUniqueId(3056);
+ static constexpr const TSymbolUniqueId gl_BoundingBoxTCSES3_2 = TSymbolUniqueId(3057);
+ static constexpr const TSymbolUniqueId gl_PerVertexOutTcsBlock = TSymbolUniqueId(3058);
+ static constexpr const TSymbolUniqueId gl_PerVertexOutTcsBlockES3_2 = TSymbolUniqueId(3059);
+ static constexpr const TSymbolUniqueId gl_PositionTCS = TSymbolUniqueId(3060);
+ static constexpr const TSymbolUniqueId gl_PositionTCSES3_2 = TSymbolUniqueId(3061);
+ static constexpr const TSymbolUniqueId gl_BoundingBoxEXTTCS = TSymbolUniqueId(3062);
+ static constexpr const TSymbolUniqueId gl_BoundingBoxEXTTCSES3_2 = TSymbolUniqueId(3063);
+ static constexpr const TSymbolUniqueId gl_BoundingBoxOESTCS = TSymbolUniqueId(3064);
+ static constexpr const TSymbolUniqueId gl_BoundingBoxOESTCSES3_2 = TSymbolUniqueId(3065);
+ static constexpr const TSymbolUniqueId gl_PatchVerticesInTES = TSymbolUniqueId(3066);
+ static constexpr const TSymbolUniqueId gl_PatchVerticesInTESES3_2 = TSymbolUniqueId(3067);
+ static constexpr const TSymbolUniqueId gl_PrimitiveIDTES = TSymbolUniqueId(3068);
+ static constexpr const TSymbolUniqueId gl_PrimitiveIDTESES3_2 = TSymbolUniqueId(3069);
+ static constexpr const TSymbolUniqueId gl_TessCoord = TSymbolUniqueId(3070);
+ static constexpr const TSymbolUniqueId gl_TessLevelOuterTES = TSymbolUniqueId(3071);
+ static constexpr const TSymbolUniqueId gl_TessLevelOuterTESES3_2 = TSymbolUniqueId(3072);
+ static constexpr const TSymbolUniqueId gl_TessLevelInnerTES = TSymbolUniqueId(3073);
+ static constexpr const TSymbolUniqueId gl_TessLevelInnerTESES3_2 = TSymbolUniqueId(3074);
+ static constexpr const TSymbolUniqueId gl_PerVertexTES = TSymbolUniqueId(3075);
+ static constexpr const TSymbolUniqueId gl_PerVertexTESES3_2 = TSymbolUniqueId(3076);
+ static constexpr const TSymbolUniqueId gl_inTES = TSymbolUniqueId(3077);
+ static constexpr const TSymbolUniqueId gl_inTESES3_2 = TSymbolUniqueId(3078);
+ static constexpr const TSymbolUniqueId gl_outTES = TSymbolUniqueId(3079);
+ static constexpr const TSymbolUniqueId gl_outTESES3_2 = TSymbolUniqueId(3080);
+ static constexpr const TSymbolUniqueId gl_PerVertexOutTesBlock = TSymbolUniqueId(3081);
+ static constexpr const TSymbolUniqueId gl_PerVertexOutTesBlockES3_2 = TSymbolUniqueId(3082);
+ static constexpr const TSymbolUniqueId gl_PositionTES = TSymbolUniqueId(3083);
+ static constexpr const TSymbolUniqueId gl_PositionTESES3_2 = TSymbolUniqueId(3084);
+ static constexpr const TSymbolUniqueId gl_ViewID_OVR = TSymbolUniqueId(3085);
+
+}; // class BuiltInId
+
+namespace BuiltInVariable
+{
+
+const TVariable *angle_BaseInstance();
+const TVariable *angle_BaseVertex();
+const TVariable *gl_BaseInstance();
+const TVariable *gl_BaseVertex();
+const TVariable *gl_DrawID();
+const TVariable *gl_FragColor();
+const TVariable *gl_FragCoord();
+const TVariable *gl_FragCoord300();
+const TVariable *gl_FragDepth();
+const TVariable *gl_FrontFacing();
+const TVariable *gl_GlobalInvocationID();
+const TVariable *gl_HelperInvocation();
+const TVariable *gl_InstanceID();
+const TVariable *gl_InstanceIndex();
+const TVariable *gl_InvocationID();
+const TVariable *gl_InvocationIDES3_2();
+const TVariable *gl_InvocationIDTCS();
+const TVariable *gl_InvocationIDTCSES3_2();
+const TVariable *gl_LastFragColor();
+const TVariable *gl_LastFragColorARM();
+const TVariable *gl_Layer();
+const TVariable *gl_LayerES3_2();
+const TVariable *gl_LayerGS();
+const TVariable *gl_LayerGSES3_2();
+const TVariable *gl_LayerVS();
+const TVariable *gl_LocalInvocationID();
+const TVariable *gl_LocalInvocationIndex();
+const TVariable *gl_NumSamples();
+const TVariable *gl_NumSamplesES3_2();
+const TVariable *gl_NumWorkGroups();
+const TVariable *gl_PatchVerticesInTCS();
+const TVariable *gl_PatchVerticesInTCSES3_2();
+const TVariable *gl_PatchVerticesInTES();
+const TVariable *gl_PatchVerticesInTESES3_2();
+const TVariable *gl_PointCoord();
+const TVariable *gl_PointSize();
+const TVariable *gl_PointSize300();
+const TVariable *gl_Position();
+const TVariable *gl_PrimitiveID();
+const TVariable *gl_PrimitiveIDES3_2();
+const TVariable *gl_PrimitiveIDGS();
+const TVariable *gl_PrimitiveIDGSES3_2();
+const TVariable *gl_PrimitiveIDIn();
+const TVariable *gl_PrimitiveIDInES3_2();
+const TVariable *gl_PrimitiveIDTCS();
+const TVariable *gl_PrimitiveIDTCSES3_2();
+const TVariable *gl_PrimitiveIDTES();
+const TVariable *gl_PrimitiveIDTESES3_2();
+const TVariable *gl_SampleID();
+const TVariable *gl_SampleIDES3_2();
+const TVariable *gl_SamplePosition();
+const TVariable *gl_SamplePositionES3_2();
+const TVariable *gl_SecondaryFragColorEXT();
+const TVariable *gl_TessCoord();
+const TVariable *gl_VertexID();
+const TVariable *gl_VertexIndex();
+const TVariable *gl_ViewID_OVR();
+const TVariable *gl_ViewportIndex();
+const TVariable *gl_WorkGroupID();
+const TVariable *gl_WorkGroupSize();
+
+} // namespace BuiltInVariable
+
+} // namespace sh
+
+#endif // COMPILER_TRANSLATOR_TREEUTIL_BUILTIN_AUTOGEN_H_
diff --git a/gfx/angle/checkout/src/compiler/translator/tree_util/DriverUniform.cpp b/gfx/angle/checkout/src/compiler/translator/tree_util/DriverUniform.cpp
new file mode 100644
index 0000000000..9cf4dddcd0
--- /dev/null
+++ b/gfx/angle/checkout/src/compiler/translator/tree_util/DriverUniform.cpp
@@ -0,0 +1,435 @@
+//
+// Copyright 2020 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.
+//
+// DriverUniform.cpp: Add code to support driver uniforms
+//
+
+#include "compiler/translator/tree_util/DriverUniform.h"
+
+#include "compiler/translator/Compiler.h"
+#include "compiler/translator/IntermNode.h"
+#include "compiler/translator/StaticType.h"
+#include "compiler/translator/SymbolTable.h"
+#include "compiler/translator/tree_util/FindMain.h"
+#include "compiler/translator/tree_util/IntermNode_util.h"
+#include "compiler/translator/tree_util/IntermTraverse.h"
+#include "compiler/translator/util.h"
+
+namespace sh
+{
+
+namespace
+{
+constexpr ImmutableString kEmulatedDepthRangeParams = ImmutableString("ANGLEDepthRangeParams");
+
+constexpr const char kAcbBufferOffsets[] = "acbBufferOffsets";
+constexpr const char kDepthRange[] = "depthRange";
+constexpr const char kRenderArea[] = "renderArea";
+constexpr const char kFlipXY[] = "flipXY";
+constexpr const char kDither[] = "dither";
+constexpr const char kMisc[] = "misc";
+
+// Extended uniforms
+constexpr const char kXfbBufferOffsets[] = "xfbBufferOffsets";
+constexpr const char kXfbVerticesPerInstance[] = "xfbVerticesPerInstance";
+constexpr const char kUnused[] = "unused";
+constexpr const char kUnused2[] = "unused2";
+} // anonymous namespace
+
+// Class DriverUniform
+bool DriverUniform::addComputeDriverUniformsToShader(TIntermBlock *root, TSymbolTable *symbolTable)
+{
+ constexpr size_t kNumComputeDriverUniforms = 1;
+ constexpr std::array<const char *, kNumComputeDriverUniforms> kComputeDriverUniformNames = {
+ {kAcbBufferOffsets}};
+
+ ASSERT(!mDriverUniforms);
+ // This field list mirrors the structure of ComputeDriverUniforms in ContextVk.cpp.
+ TFieldList *driverFieldList = new TFieldList;
+
+ const std::array<TType *, kNumComputeDriverUniforms> kDriverUniformTypes = {{
+ new TType(EbtUInt, EbpHigh, EvqGlobal, 4),
+ }};
+
+ for (size_t uniformIndex = 0; uniformIndex < kNumComputeDriverUniforms; ++uniformIndex)
+ {
+ TField *driverUniformField =
+ new TField(kDriverUniformTypes[uniformIndex],
+ ImmutableString(kComputeDriverUniformNames[uniformIndex]), TSourceLoc(),
+ SymbolType::AngleInternal);
+ driverFieldList->push_back(driverUniformField);
+ }
+
+ // Define a driver uniform block "ANGLEUniformBlock" with instance name "ANGLEUniforms".
+ TLayoutQualifier layoutQualifier = TLayoutQualifier::Create();
+ layoutQualifier.blockStorage = EbsStd140;
+ layoutQualifier.pushConstant = true;
+
+ mDriverUniforms = DeclareInterfaceBlock(root, symbolTable, driverFieldList, EvqUniform,
+ layoutQualifier, TMemoryQualifier::Create(), 0,
+ ImmutableString(vk::kDriverUniformsBlockName),
+ ImmutableString(vk::kDriverUniformsVarName));
+ return mDriverUniforms != nullptr;
+}
+
+TFieldList *DriverUniform::createUniformFields(TSymbolTable *symbolTable)
+{
+ constexpr size_t kNumGraphicsDriverUniforms = 6;
+ constexpr std::array<const char *, kNumGraphicsDriverUniforms> kGraphicsDriverUniformNames = {{
+ kAcbBufferOffsets,
+ kDepthRange,
+ kRenderArea,
+ kFlipXY,
+ kDither,
+ kMisc,
+ }};
+
+ // This field list mirrors the structure of GraphicsDriverUniforms in ContextVk.cpp.
+ TFieldList *driverFieldList = new TFieldList;
+
+ const std::array<TType *, kNumGraphicsDriverUniforms> kDriverUniformTypes = {{
+ // acbBufferOffsets: Packed ubyte8
+ new TType(EbtUInt, EbpHigh, EvqGlobal, 2),
+ // depthRange: Near and far depth
+ new TType(EbtFloat, EbpHigh, EvqGlobal, 2),
+ // renderArea: Packed ushort2
+ new TType(EbtUInt, EbpHigh, EvqGlobal),
+ // flipXY: Packed snorm4
+ new TType(EbtUInt, EbpHigh, EvqGlobal),
+ // dither: ushort
+ new TType(EbtUInt, EbpHigh, EvqGlobal),
+ // misc: Various bits of state
+ new TType(EbtUInt, EbpHigh, EvqGlobal),
+ }};
+
+ for (size_t uniformIndex = 0; uniformIndex < kNumGraphicsDriverUniforms; ++uniformIndex)
+ {
+ TField *driverUniformField =
+ new TField(kDriverUniformTypes[uniformIndex],
+ ImmutableString(kGraphicsDriverUniformNames[uniformIndex]), TSourceLoc(),
+ SymbolType::AngleInternal);
+ driverFieldList->push_back(driverUniformField);
+ }
+
+ return driverFieldList;
+}
+
+const TType *DriverUniform::createEmulatedDepthRangeType(TSymbolTable *symbolTable)
+{
+ // If already defined, return it immediately.
+ if (mEmulatedDepthRangeType != nullptr)
+ {
+ return mEmulatedDepthRangeType;
+ }
+
+ // Create the depth range type.
+ TFieldList *depthRangeParamsFields = new TFieldList();
+ TType *floatType = new TType(EbtFloat, EbpHigh, EvqGlobal, 1, 1);
+ depthRangeParamsFields->push_back(
+ new TField(floatType, ImmutableString("near"), TSourceLoc(), SymbolType::AngleInternal));
+ depthRangeParamsFields->push_back(
+ new TField(floatType, ImmutableString("far"), TSourceLoc(), SymbolType::AngleInternal));
+ depthRangeParamsFields->push_back(
+ new TField(floatType, ImmutableString("diff"), TSourceLoc(), SymbolType::AngleInternal));
+
+ TStructure *emulatedDepthRangeParams = new TStructure(
+ symbolTable, kEmulatedDepthRangeParams, depthRangeParamsFields, SymbolType::AngleInternal);
+
+ mEmulatedDepthRangeType = new TType(emulatedDepthRangeParams, false);
+
+ return mEmulatedDepthRangeType;
+}
+
+// The Add*DriverUniformsToShader operation adds an internal uniform block to a shader. The driver
+// block is used to implement Vulkan-specific features and workarounds. Returns the driver uniforms
+// variable.
+//
+// There are Graphics and Compute variations as they require different uniforms.
+bool DriverUniform::addGraphicsDriverUniformsToShader(TIntermBlock *root, TSymbolTable *symbolTable)
+{
+ ASSERT(!mDriverUniforms);
+
+ // Declare the depth range struct type.
+ const TType *emulatedDepthRangeType = createEmulatedDepthRangeType(symbolTable);
+ const TType *emulatedDepthRangeDeclType = new TType(emulatedDepthRangeType->getStruct(), true);
+
+ const TVariable *depthRangeVar =
+ new TVariable(symbolTable->nextUniqueId(), kEmptyImmutableString, SymbolType::Empty,
+ TExtension::UNDEFINED, emulatedDepthRangeDeclType);
+
+ DeclareGlobalVariable(root, depthRangeVar);
+
+ TFieldList *driverFieldList = createUniformFields(symbolTable);
+ if (mMode == DriverUniformMode::InterfaceBlock)
+ {
+ // Define a driver uniform block "ANGLEUniformBlock" with instance name "ANGLEUniforms".
+ TLayoutQualifier layoutQualifier = TLayoutQualifier::Create();
+ layoutQualifier.blockStorage = EbsStd140;
+ layoutQualifier.pushConstant = true;
+
+ mDriverUniforms = DeclareInterfaceBlock(root, symbolTable, driverFieldList, EvqUniform,
+ layoutQualifier, TMemoryQualifier::Create(), 0,
+ ImmutableString(vk::kDriverUniformsBlockName),
+ ImmutableString(vk::kDriverUniformsVarName));
+ }
+ else
+ {
+ // Declare a structure "ANGLEUniformBlock" with instance name "ANGLE_angleUniforms".
+ // This code path is taken only by the direct-to-Metal backend, and the assumptions
+ // about the naming conventions of ANGLE-internal variables run too deeply to rename
+ // this one.
+ auto varName = ImmutableString("ANGLE_angleUniforms");
+ auto result = DeclareStructure(root, symbolTable, driverFieldList, EvqUniform,
+ TMemoryQualifier::Create(), 0,
+ ImmutableString(vk::kDriverUniformsBlockName), &varName);
+ mDriverUniforms = result.second;
+ }
+
+ return mDriverUniforms != nullptr;
+}
+
+TIntermTyped *DriverUniform::createDriverUniformRef(const char *fieldName) const
+{
+ size_t fieldIndex = 0;
+ if (mMode == DriverUniformMode::InterfaceBlock)
+ {
+ fieldIndex =
+ FindFieldIndex(mDriverUniforms->getType().getInterfaceBlock()->fields(), fieldName);
+ }
+ else
+ {
+ fieldIndex = FindFieldIndex(mDriverUniforms->getType().getStruct()->fields(), fieldName);
+ }
+
+ TIntermSymbol *angleUniformsRef = new TIntermSymbol(mDriverUniforms);
+ TConstantUnion *uniformIndex = new TConstantUnion;
+ uniformIndex->setIConst(static_cast<int>(fieldIndex));
+ TIntermConstantUnion *indexRef =
+ new TIntermConstantUnion(uniformIndex, *StaticType::GetBasic<EbtInt, EbpLow>());
+ if (mMode == DriverUniformMode::InterfaceBlock)
+ {
+ return new TIntermBinary(EOpIndexDirectInterfaceBlock, angleUniformsRef, indexRef);
+ }
+ return new TIntermBinary(EOpIndexDirectStruct, angleUniformsRef, indexRef);
+}
+
+TIntermTyped *DriverUniform::getAcbBufferOffsets() const
+{
+ return createDriverUniformRef(kAcbBufferOffsets);
+}
+
+TIntermTyped *DriverUniform::getDepthRange() const
+{
+ ASSERT(mEmulatedDepthRangeType != nullptr);
+
+ TIntermTyped *depthRangeRef = createDriverUniformRef(kDepthRange);
+ TIntermTyped *nearRef = new TIntermSwizzle(depthRangeRef, {0});
+ TIntermTyped *farRef = new TIntermSwizzle(depthRangeRef->deepCopy(), {1});
+ TIntermTyped *diff = new TIntermBinary(EOpSub, farRef, nearRef);
+
+ TIntermSequence args = {
+ nearRef->deepCopy(),
+ farRef->deepCopy(),
+ diff,
+ };
+
+ return TIntermAggregate::CreateConstructor(*mEmulatedDepthRangeType, &args);
+}
+
+TIntermTyped *DriverUniform::getViewportZScale() const
+{
+ ASSERT(mEmulatedDepthRangeType != nullptr);
+
+ TIntermTyped *depthRangeRef = createDriverUniformRef(kDepthRange);
+ TIntermTyped *nearRef = new TIntermSwizzle(depthRangeRef, {0});
+ TIntermTyped *farRef = new TIntermSwizzle(depthRangeRef->deepCopy(), {1});
+
+ TIntermTyped *isNegative = new TIntermBinary(EOpLessThan, farRef, nearRef);
+
+ return new TIntermTernary(isNegative, CreateFloatNode(-1, EbpMedium),
+ CreateFloatNode(1, EbpMedium));
+}
+
+TIntermTyped *DriverUniform::getHalfRenderArea() const
+{
+ TIntermTyped *renderAreaRef = createDriverUniformRef(kRenderArea);
+ TIntermTyped *width = new TIntermBinary(EOpBitwiseAnd, renderAreaRef, CreateUIntNode(0xFFFF));
+ TIntermTyped *height =
+ new TIntermBinary(EOpBitShiftRight, renderAreaRef->deepCopy(), CreateUIntNode(16));
+
+ TIntermSequence widthArgs = {
+ width,
+ };
+ TIntermTyped *widthAsFloat =
+ TIntermAggregate::CreateConstructor(*StaticType::GetBasic<EbtFloat, EbpHigh>(), &widthArgs);
+
+ TIntermSequence heightArgs = {
+ height,
+ };
+ TIntermTyped *heightAsFloat = TIntermAggregate::CreateConstructor(
+ *StaticType::GetBasic<EbtFloat, EbpHigh>(), &heightArgs);
+
+ TIntermSequence args = {
+ widthAsFloat,
+ heightAsFloat,
+ };
+
+ TIntermTyped *renderArea =
+ TIntermAggregate::CreateConstructor(*StaticType::GetBasic<EbtFloat, EbpHigh, 2>(), &args);
+ return new TIntermBinary(EOpVectorTimesScalar, renderArea, CreateFloatNode(0.5, EbpMedium));
+}
+
+TIntermTyped *DriverUniform::getFlipXY(TSymbolTable *symbolTable, DriverUniformFlip stage) const
+{
+ TIntermTyped *flipXY = createDriverUniformRef(kFlipXY);
+ TIntermTyped *values = CreateBuiltInUnaryFunctionCallNode(
+ "unpackSnorm4x8", flipXY, *symbolTable,
+ GetESSLOrGLSLVersion(symbolTable->getShaderSpec(), 310, 400));
+
+ if (stage == DriverUniformFlip::Fragment)
+ {
+ return new TIntermSwizzle(values, {0, 1});
+ }
+
+ return new TIntermSwizzle(values, {2, 3});
+}
+
+TIntermTyped *DriverUniform::getNegFlipXY(TSymbolTable *symbolTable, DriverUniformFlip stage) const
+{
+ TIntermTyped *flipXY = getFlipXY(symbolTable, stage);
+
+ constexpr std::array<float, 2> kMultiplier = {1, -1};
+ return new TIntermBinary(EOpMul, flipXY, CreateVecNode(kMultiplier.data(), 2, EbpLow));
+}
+
+TIntermTyped *DriverUniform::getDither() const
+{
+ return createDriverUniformRef(kDither);
+}
+
+TIntermTyped *DriverUniform::getSwapXY() const
+{
+ TIntermTyped *miscRef = createDriverUniformRef(kMisc);
+ TIntermTyped *swapXY = new TIntermBinary(EOpBitwiseAnd, miscRef,
+ CreateUIntNode(vk::kDriverUniformsMiscSwapXYMask));
+
+ TIntermSequence args = {
+ swapXY,
+ };
+ return TIntermAggregate::CreateConstructor(*StaticType::GetBasic<EbtBool, EbpUndefined>(),
+ &args);
+}
+
+TIntermTyped *DriverUniform::getAdvancedBlendEquation() const
+{
+ TIntermTyped *miscRef = createDriverUniformRef(kMisc);
+ TIntermTyped *equation =
+ new TIntermBinary(EOpBitShiftRight, miscRef,
+ CreateUIntNode(vk::kDriverUniformsMiscAdvancedBlendEquationOffset));
+ equation = new TIntermBinary(EOpBitwiseAnd, equation,
+ CreateUIntNode(vk::kDriverUniformsMiscAdvancedBlendEquationMask));
+
+ return equation;
+}
+
+TIntermTyped *DriverUniform::getNumSamples() const
+{
+ TIntermTyped *miscRef = createDriverUniformRef(kMisc);
+ TIntermTyped *sampleCount = new TIntermBinary(
+ EOpBitShiftRight, miscRef, CreateUIntNode(vk::kDriverUniformsMiscSampleCountOffset));
+ sampleCount = new TIntermBinary(EOpBitwiseAnd, sampleCount,
+ CreateUIntNode(vk::kDriverUniformsMiscSampleCountMask));
+
+ return sampleCount;
+}
+
+TIntermTyped *DriverUniform::getClipDistancesEnabled() const
+{
+ TIntermTyped *miscRef = createDriverUniformRef(kMisc);
+ TIntermTyped *enabledMask = new TIntermBinary(
+ EOpBitShiftRight, miscRef, CreateUIntNode(vk::kDriverUniformsMiscEnabledClipPlanesOffset));
+ enabledMask = new TIntermBinary(EOpBitwiseAnd, enabledMask,
+ CreateUIntNode(vk::kDriverUniformsMiscEnabledClipPlanesMask));
+
+ return enabledMask;
+}
+
+TIntermTyped *DriverUniform::getTransformDepth() const
+{
+ TIntermTyped *miscRef = createDriverUniformRef(kMisc);
+ TIntermTyped *transformDepth = new TIntermBinary(
+ EOpBitShiftRight, miscRef, CreateUIntNode(vk::kDriverUniformsMiscTransformDepthOffset));
+ transformDepth = new TIntermBinary(EOpBitwiseAnd, transformDepth,
+ CreateUIntNode(vk::kDriverUniformsMiscTransformDepthMask));
+
+ TIntermSequence args = {
+ transformDepth,
+ };
+ return TIntermAggregate::CreateConstructor(*StaticType::GetBasic<EbtBool, EbpUndefined>(),
+ &args);
+}
+
+//
+// Class DriverUniformExtended
+//
+TFieldList *DriverUniformExtended::createUniformFields(TSymbolTable *symbolTable)
+{
+ TFieldList *driverFieldList = DriverUniform::createUniformFields(symbolTable);
+
+ constexpr size_t kNumGraphicsDriverUniformsExt = 4;
+ constexpr std::array<const char *, kNumGraphicsDriverUniformsExt>
+ kGraphicsDriverUniformNamesExt = {
+ {kXfbBufferOffsets, kXfbVerticesPerInstance, kUnused, kUnused2}};
+
+ const std::array<TType *, kNumGraphicsDriverUniformsExt> kDriverUniformTypesExt = {{
+ // xfbBufferOffsets: uvec4
+ new TType(EbtInt, EbpHigh, EvqGlobal, 4),
+ // xfbVerticesPerInstance: uint
+ new TType(EbtInt, EbpHigh, EvqGlobal),
+ // unused: uvec3
+ new TType(EbtUInt, EbpHigh, EvqGlobal),
+ new TType(EbtUInt, EbpHigh, EvqGlobal, 2),
+ }};
+
+ for (size_t uniformIndex = 0; uniformIndex < kNumGraphicsDriverUniformsExt; ++uniformIndex)
+ {
+ TField *driverUniformField =
+ new TField(kDriverUniformTypesExt[uniformIndex],
+ ImmutableString(kGraphicsDriverUniformNamesExt[uniformIndex]), TSourceLoc(),
+ SymbolType::AngleInternal);
+ driverFieldList->push_back(driverUniformField);
+ }
+
+ return driverFieldList;
+}
+
+TIntermTyped *DriverUniformExtended::getXfbBufferOffsets() const
+{
+ return createDriverUniformRef(kXfbBufferOffsets);
+}
+
+TIntermTyped *DriverUniformExtended::getXfbVerticesPerInstance() const
+{
+ return createDriverUniformRef(kXfbVerticesPerInstance);
+}
+
+TIntermTyped *MakeSwapXMultiplier(TIntermTyped *swapped)
+{
+ // float(!swapped)
+ TIntermSequence args = {
+ new TIntermUnary(EOpLogicalNot, swapped, nullptr),
+ };
+ return TIntermAggregate::CreateConstructor(*StaticType::GetBasic<EbtFloat, EbpLow>(), &args);
+}
+
+TIntermTyped *MakeSwapYMultiplier(TIntermTyped *swapped)
+{
+ // float(swapped)
+ TIntermSequence args = {
+ swapped,
+ };
+ return TIntermAggregate::CreateConstructor(*StaticType::GetBasic<EbtFloat, EbpLow>(), &args);
+}
+} // namespace sh
diff --git a/gfx/angle/checkout/src/compiler/translator/tree_util/DriverUniform.h b/gfx/angle/checkout/src/compiler/translator/tree_util/DriverUniform.h
new file mode 100644
index 0000000000..53eebae74d
--- /dev/null
+++ b/gfx/angle/checkout/src/compiler/translator/tree_util/DriverUniform.h
@@ -0,0 +1,110 @@
+//
+// Copyright 2020 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.
+//
+// DriverUniform.h: Add code to support driver uniforms
+//
+
+#ifndef COMPILER_TRANSLATOR_TREEUTIL_DRIVERUNIFORM_H_
+#define COMPILER_TRANSLATOR_TREEUTIL_DRIVERUNIFORM_H_
+
+#include "common/angleutils.h"
+#include "compiler/translator/Types.h"
+
+namespace sh
+{
+
+class TCompiler;
+class TIntermBlock;
+class TIntermNode;
+class TSymbolTable;
+class TIntermTyped;
+class TIntermSwizzle;
+class TIntermBinary;
+
+enum class DriverUniformMode
+{
+ // Define the driver uniforms as an interface block. Used by the
+ // Vulkan and Metal/SPIR-V backends.
+ InterfaceBlock,
+
+ // Define the driver uniforms as a structure. Used by the
+ // direct-to-MSL Metal backend.
+ Structure
+};
+
+enum class DriverUniformFlip
+{
+ // Flip uniforms for fragment shaders
+ Fragment,
+ // Flip uniforms for pre-rasterization stages. These differ from the fragment values by whether
+ // the viewport needs to be flipped, and whether negative viewports are supported.
+ PreFragment,
+};
+
+class DriverUniform
+{
+ public:
+ DriverUniform(DriverUniformMode mode)
+ : mMode(mode), mDriverUniforms(nullptr), mEmulatedDepthRangeType(nullptr)
+ {}
+ virtual ~DriverUniform() = default;
+
+ bool addComputeDriverUniformsToShader(TIntermBlock *root, TSymbolTable *symbolTable);
+ bool addGraphicsDriverUniformsToShader(TIntermBlock *root, TSymbolTable *symbolTable);
+
+ TIntermTyped *getAcbBufferOffsets() const;
+ TIntermTyped *getDepthRange() const;
+ TIntermTyped *getViewportZScale() const;
+ TIntermTyped *getHalfRenderArea() const;
+ TIntermTyped *getFlipXY(TSymbolTable *symbolTable, DriverUniformFlip stage) const;
+ // Returns vec2(flip.x, -flip.y)
+ TIntermTyped *getNegFlipXY(TSymbolTable *symbolTable, DriverUniformFlip stage) const;
+ TIntermTyped *getDither() const;
+ TIntermTyped *getSwapXY() const;
+ TIntermTyped *getAdvancedBlendEquation() const;
+ TIntermTyped *getNumSamples() const;
+ TIntermTyped *getClipDistancesEnabled() const;
+ TIntermTyped *getTransformDepth() const;
+
+ virtual TIntermTyped *getViewport() const { return nullptr; }
+ virtual TIntermTyped *getXfbBufferOffsets() const { return nullptr; }
+ virtual TIntermTyped *getXfbVerticesPerInstance() const { return nullptr; }
+
+ const TVariable *getDriverUniformsVariable() const { return mDriverUniforms; }
+
+ protected:
+ TIntermTyped *createDriverUniformRef(const char *fieldName) const;
+ virtual TFieldList *createUniformFields(TSymbolTable *symbolTable);
+ const TType *createEmulatedDepthRangeType(TSymbolTable *symbolTable);
+
+ const DriverUniformMode mMode;
+ const TVariable *mDriverUniforms;
+ TType *mEmulatedDepthRangeType;
+};
+
+class DriverUniformExtended : public DriverUniform
+{
+ public:
+ DriverUniformExtended(DriverUniformMode mode) : DriverUniform(mode) {}
+ ~DriverUniformExtended() override {}
+
+ TIntermTyped *getXfbBufferOffsets() const override;
+ TIntermTyped *getXfbVerticesPerInstance() const override;
+
+ protected:
+ TFieldList *createUniformFields(TSymbolTable *symbolTable) override;
+};
+
+// Returns either (1,0) or (0,1) based on whether X and Y should remain as-is or swapped
+// respectively. dot((x,y), multiplier) will yield x, and dot((x,y), multiplier.yx) will yield y in
+// the possibly-swapped coordinates.
+//
+// Each component is separately returned by a function
+TIntermTyped *MakeSwapXMultiplier(TIntermTyped *swapped);
+TIntermTyped *MakeSwapYMultiplier(TIntermTyped *swapped);
+
+} // namespace sh
+
+#endif // COMPILER_TRANSLATOR_TREEUTIL_DRIVERUNIFORM_H_
diff --git a/gfx/angle/checkout/src/compiler/translator/tree_util/FindFunction.cpp b/gfx/angle/checkout/src/compiler/translator/tree_util/FindFunction.cpp
new file mode 100644
index 0000000000..198040df14
--- /dev/null
+++ b/gfx/angle/checkout/src/compiler/translator/tree_util/FindFunction.cpp
@@ -0,0 +1,32 @@
+//
+// 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.
+//
+
+// FindFunction.cpp: Find functions.
+
+#include "compiler/translator/tree_util/FindFunction.h"
+
+#include "compiler/translator/IntermNode.h"
+#include "compiler/translator/Symbol.h"
+
+namespace sh
+{
+
+size_t FindFirstFunctionDefinitionIndex(TIntermBlock *root)
+{
+ const TIntermSequence &sequence = *root->getSequence();
+ for (size_t index = 0; index < sequence.size(); ++index)
+ {
+ TIntermNode *node = sequence[index];
+ TIntermFunctionDefinition *nodeFunction = node->getAsFunctionDefinition();
+ if (nodeFunction != nullptr)
+ {
+ return index;
+ }
+ }
+ return std::numeric_limits<size_t>::max();
+}
+
+} // namespace sh
diff --git a/gfx/angle/checkout/src/compiler/translator/tree_util/FindFunction.h b/gfx/angle/checkout/src/compiler/translator/tree_util/FindFunction.h
new file mode 100644
index 0000000000..ced6b7e96e
--- /dev/null
+++ b/gfx/angle/checkout/src/compiler/translator/tree_util/FindFunction.h
@@ -0,0 +1,21 @@
+//
+// Copyright 2019 The ANGLE Project Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+//
+
+// FindFunction.h: Adds functions to find functions
+
+#ifndef COMPILER_TRANSLATOR_TREEUTIL_FINDFUNCTION_H_
+#define COMPILER_TRANSLATOR_TREEUTIL_FINDFUNCTION_H_
+
+#include <cstddef>
+
+namespace sh
+{
+class TIntermBlock;
+
+size_t FindFirstFunctionDefinitionIndex(TIntermBlock *root);
+} // namespace sh
+
+#endif // COMPILER_TRANSLATOR_TREEUTIL_FINDFUNCTION_H_
diff --git a/gfx/angle/checkout/src/compiler/translator/tree_util/FindMain.cpp b/gfx/angle/checkout/src/compiler/translator/tree_util/FindMain.cpp
new file mode 100644
index 0000000000..833948602a
--- /dev/null
+++ b/gfx/angle/checkout/src/compiler/translator/tree_util/FindMain.cpp
@@ -0,0 +1,54 @@
+//
+// Copyright 2017 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.
+//
+
+// FindMain.cpp: Find the main() function definition in a given AST.
+
+#include "compiler/translator/tree_util/FindMain.h"
+
+#include "compiler/translator/IntermNode.h"
+#include "compiler/translator/Symbol.h"
+
+namespace sh
+{
+
+size_t FindMainIndex(TIntermBlock *root)
+{
+ const TIntermSequence &sequence = *root->getSequence();
+ for (size_t index = 0; index < sequence.size(); ++index)
+ {
+ TIntermNode *node = sequence[index];
+ TIntermFunctionDefinition *nodeFunction = node->getAsFunctionDefinition();
+ if (nodeFunction != nullptr && nodeFunction->getFunction()->isMain())
+ {
+ return index;
+ }
+ }
+ return std::numeric_limits<size_t>::max();
+}
+
+TIntermFunctionDefinition *FindMain(TIntermBlock *root)
+{
+ for (TIntermNode *node : *root->getSequence())
+ {
+ TIntermFunctionDefinition *nodeFunction = node->getAsFunctionDefinition();
+ if (nodeFunction != nullptr && nodeFunction->getFunction()->isMain())
+ {
+ return nodeFunction;
+ }
+ }
+ return nullptr;
+}
+
+TIntermBlock *FindMainBody(TIntermBlock *root)
+{
+ TIntermFunctionDefinition *main = FindMain(root);
+ ASSERT(main != nullptr);
+ TIntermBlock *mainBody = main->getBody();
+ ASSERT(mainBody != nullptr);
+ return mainBody;
+}
+
+} // namespace sh
diff --git a/gfx/angle/checkout/src/compiler/translator/tree_util/FindMain.h b/gfx/angle/checkout/src/compiler/translator/tree_util/FindMain.h
new file mode 100644
index 0000000000..bbdcbe978a
--- /dev/null
+++ b/gfx/angle/checkout/src/compiler/translator/tree_util/FindMain.h
@@ -0,0 +1,24 @@
+//
+// Copyright 2017 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.
+//
+
+// FindMain.h: Adds functions to get the main function definition and its body.
+
+#ifndef COMPILER_TRANSLATOR_TREEUTIL_FINDMAIN_H_
+#define COMPILER_TRANSLATOR_TREEUTIL_FINDMAIN_H_
+
+#include <cstddef>
+
+namespace sh
+{
+class TIntermBlock;
+class TIntermFunctionDefinition;
+
+size_t FindMainIndex(TIntermBlock *root);
+TIntermFunctionDefinition *FindMain(TIntermBlock *root);
+TIntermBlock *FindMainBody(TIntermBlock *root);
+} // namespace sh
+
+#endif // COMPILER_TRANSLATOR_TREEUTIL_FINDMAIN_H_
diff --git a/gfx/angle/checkout/src/compiler/translator/tree_util/FindPreciseNodes.cpp b/gfx/angle/checkout/src/compiler/translator/tree_util/FindPreciseNodes.cpp
new file mode 100644
index 0000000000..2943117314
--- /dev/null
+++ b/gfx/angle/checkout/src/compiler/translator/tree_util/FindPreciseNodes.cpp
@@ -0,0 +1,703 @@
+//
+// Copyright 2021 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.
+//
+// FindPreciseNodes.cpp: Propagates |precise| to AST nodes.
+//
+// The high level algorithm is as follows. For every node that "assigns" to a precise object,
+// subobject (a precise struct whose field is being assigned) or superobject (a struct with a
+// precise field), two things happen:
+//
+// - The operation is marked precise if it's an arithmetic operation
+// - The right hand side of the assignment is made precise. If only a subobject is precise, only
+// the corresponding subobject of the right hand side is made precise.
+//
+
+#include "compiler/translator/tree_util/FindPreciseNodes.h"
+
+#include "common/hash_utils.h"
+#include "compiler/translator/Compiler.h"
+#include "compiler/translator/IntermNode.h"
+#include "compiler/translator/Symbol.h"
+#include "compiler/translator/tree_util/IntermTraverse.h"
+
+namespace sh
+{
+
+namespace
+{
+
+// An access chain applied to a variable. The |precise|-ness of a node does not change when
+// indexing arrays, selecting matrix columns or swizzle vectors. This access chain thus only
+// includes block field selections. The access chain is used to identify the part of an object
+// that is or should be |precise|. If both a.b.c and a.b are precise, only a.b is every considered.
+class AccessChain
+{
+ public:
+ AccessChain() = default;
+
+ bool operator==(const AccessChain &other) const { return mChain == other.mChain; }
+
+ const TVariable *build(TIntermTyped *lvalue);
+
+ const TVector<size_t> &getChain() const { return mChain; }
+
+ void reduceChain(size_t newSize)
+ {
+ ASSERT(newSize <= mChain.size());
+ mChain.resize(newSize);
+ }
+ void clear() { reduceChain(0); }
+ void push_back(size_t index) { mChain.push_back(index); }
+ void pop_front(size_t n);
+ void append(const AccessChain &other)
+ {
+ mChain.insert(mChain.end(), other.mChain.begin(), other.mChain.end());
+ }
+ bool removePrefix(const AccessChain &other);
+
+ private:
+ TVector<size_t> mChain;
+};
+
+bool IsIndexOp(TOperator op)
+{
+ switch (op)
+ {
+ case EOpIndexDirect:
+ case EOpIndexDirectStruct:
+ case EOpIndexDirectInterfaceBlock:
+ case EOpIndexIndirect:
+ return true;
+ default:
+ return false;
+ }
+}
+
+const TVariable *AccessChain::build(TIntermTyped *lvalue)
+{
+ if (lvalue->getAsSwizzleNode())
+ {
+ return build(lvalue->getAsSwizzleNode()->getOperand());
+ }
+ if (lvalue->getAsSymbolNode())
+ {
+ const TVariable *var = &lvalue->getAsSymbolNode()->variable();
+
+ // For fields of nameless interface blocks, add the field index too.
+ if (var->getType().getInterfaceBlock() != nullptr)
+ {
+ mChain.push_back(var->getType().getInterfaceBlockFieldIndex());
+ }
+
+ return var;
+ }
+ TIntermBinary *binary = lvalue->getAsBinaryNode();
+ ASSERT(binary);
+
+ TOperator op = binary->getOp();
+ ASSERT(IsIndexOp(op));
+
+ const TVariable *var = build(binary->getLeft());
+
+ if (op == EOpIndexDirectStruct || op == EOpIndexDirectInterfaceBlock)
+ {
+ int fieldIndex = binary->getRight()->getAsConstantUnion()->getIConst(0);
+ mChain.push_back(fieldIndex);
+ }
+
+ return var;
+}
+
+void AccessChain::pop_front(size_t n)
+{
+ std::rotate(mChain.begin(), mChain.begin() + n, mChain.end());
+ reduceChain(mChain.size() - n);
+}
+
+bool AccessChain::removePrefix(const AccessChain &other)
+{
+ // First, make sure the common part of the two access chains match.
+ size_t commonSize = std::min(mChain.size(), other.mChain.size());
+
+ for (size_t index = 0; index < commonSize; ++index)
+ {
+ if (mChain[index] != other.mChain[index])
+ {
+ return false;
+ }
+ }
+
+ // Remove the common part from the access chain. If other is a deeper access chain, this access
+ // chain will become empty.
+ pop_front(commonSize);
+
+ return true;
+}
+
+AccessChain GetAssignmentAccessChain(TIntermOperator *node)
+{
+ // The assignment is either a unary or a binary node, and the lvalue is always the first child.
+ AccessChain lvalueAccessChain;
+ lvalueAccessChain.build(node->getChildNode(0)->getAsTyped());
+ return lvalueAccessChain;
+}
+
+template <typename Traverser>
+void TraverseIndexNodesOnly(TIntermNode *node, Traverser *traverser)
+{
+ if (node->getAsSwizzleNode())
+ {
+ node = node->getAsSwizzleNode()->getOperand();
+ }
+
+ if (node->getAsSymbolNode())
+ {
+ return;
+ }
+
+ TIntermBinary *binary = node->getAsBinaryNode();
+ ASSERT(binary);
+
+ TOperator op = binary->getOp();
+ ASSERT(IsIndexOp(op));
+
+ if (op == EOpIndexIndirect)
+ {
+ binary->getRight()->traverse(traverser);
+ }
+
+ TraverseIndexNodesOnly(binary->getLeft(), traverser);
+}
+
+// An object, which could be a sub-object of a variable.
+struct ObjectAndAccessChain
+{
+ const TVariable *variable;
+ AccessChain accessChain;
+};
+
+bool operator==(const ObjectAndAccessChain &a, const ObjectAndAccessChain &b)
+{
+ return a.variable == b.variable && a.accessChain == b.accessChain;
+}
+
+struct ObjectAndAccessChainHash
+{
+ size_t operator()(const ObjectAndAccessChain &object) const
+ {
+ size_t result = angle::ComputeGenericHash(&object.variable, sizeof(object.variable));
+ if (!object.accessChain.getChain().empty())
+ {
+ result =
+ result ^ angle::ComputeGenericHash(object.accessChain.getChain().data(),
+ object.accessChain.getChain().size() *
+ sizeof(object.accessChain.getChain()[0]));
+ }
+ return result;
+ }
+};
+
+// A map from variables to AST nodes that modify them (i.e. nodes where IsAssignment(op)).
+using VariableToAssignmentNodeMap = angle::HashMap<const TVariable *, TVector<TIntermOperator *>>;
+// A set of |return| nodes from functions with a |precise| return value.
+using PreciseReturnNodes = angle::HashSet<TIntermBranch *>;
+// A set of precise objects that need processing, or have been processed.
+using PreciseObjectSet = angle::HashSet<ObjectAndAccessChain, ObjectAndAccessChainHash>;
+
+struct ASTInfo
+{
+ // Generic information about the tree:
+ VariableToAssignmentNodeMap variableAssignmentNodeMap;
+ // Information pertaining to |precise| expressions:
+ PreciseReturnNodes preciseReturnNodes;
+ PreciseObjectSet preciseObjectsToProcess;
+ PreciseObjectSet preciseObjectsVisited;
+};
+
+int GetObjectPreciseSubChainLength(const ObjectAndAccessChain &object)
+{
+ const TType &type = object.variable->getType();
+
+ if (type.isPrecise())
+ {
+ return 0;
+ }
+
+ const TFieldListCollection *block = type.getInterfaceBlock();
+ if (block == nullptr)
+ {
+ block = type.getStruct();
+ }
+ const TVector<size_t> &accessChain = object.accessChain.getChain();
+
+ for (size_t length = 0; length < accessChain.size(); ++length)
+ {
+ ASSERT(block != nullptr);
+
+ const TField *field = block->fields()[accessChain[length]];
+ if (field->type()->isPrecise())
+ {
+ return static_cast<int>(length + 1);
+ }
+
+ block = field->type()->getStruct();
+ }
+
+ return -1;
+}
+
+void AddPreciseObject(ASTInfo *info, const ObjectAndAccessChain &object)
+{
+ if (info->preciseObjectsVisited.count(object) > 0)
+ {
+ return;
+ }
+
+ info->preciseObjectsToProcess.insert(object);
+ info->preciseObjectsVisited.insert(object);
+}
+
+void AddPreciseSubObjects(ASTInfo *info, const ObjectAndAccessChain &object);
+
+void AddObjectIfPrecise(ASTInfo *info, const ObjectAndAccessChain &object)
+{
+ // See if the access chain is already precise, and if so add the minimum access chain that is
+ // precise.
+ int preciseSubChainLength = GetObjectPreciseSubChainLength(object);
+ if (preciseSubChainLength == -1)
+ {
+ // If the access chain is not precise, see if there are any fields of it that are precise,
+ // and add those individually.
+ AddPreciseSubObjects(info, object);
+ return;
+ }
+
+ ObjectAndAccessChain preciseObject = object;
+ preciseObject.accessChain.reduceChain(preciseSubChainLength);
+
+ AddPreciseObject(info, preciseObject);
+}
+
+void AddPreciseSubObjects(ASTInfo *info, const ObjectAndAccessChain &object)
+{
+ const TFieldListCollection *block = object.variable->getType().getInterfaceBlock();
+ if (block == nullptr)
+ {
+ block = object.variable->getType().getStruct();
+ }
+ const TVector<size_t> &accessChain = object.accessChain.getChain();
+
+ for (size_t length = 0; length < accessChain.size(); ++length)
+ {
+ block = block->fields()[accessChain[length]]->type()->getStruct();
+ }
+
+ if (block == nullptr)
+ {
+ return;
+ }
+
+ for (size_t fieldIndex = 0; fieldIndex < block->fields().size(); ++fieldIndex)
+ {
+ ObjectAndAccessChain subObject = object;
+ subObject.accessChain.push_back(fieldIndex);
+
+ // If the field is precise, add it as a precise subobject. Otherwise recurse.
+ if (block->fields()[fieldIndex]->type()->isPrecise())
+ {
+ AddPreciseObject(info, subObject);
+ }
+ else
+ {
+ AddPreciseSubObjects(info, subObject);
+ }
+ }
+}
+
+bool IsArithmeticOp(TOperator op)
+{
+ switch (op)
+ {
+ case EOpNegative:
+
+ case EOpPostIncrement:
+ case EOpPostDecrement:
+ case EOpPreIncrement:
+ case EOpPreDecrement:
+
+ case EOpAdd:
+ case EOpSub:
+ case EOpMul:
+ case EOpDiv:
+ case EOpIMod:
+
+ case EOpVectorTimesScalar:
+ case EOpVectorTimesMatrix:
+ case EOpMatrixTimesVector:
+ case EOpMatrixTimesScalar:
+ case EOpMatrixTimesMatrix:
+
+ case EOpAddAssign:
+ case EOpSubAssign:
+
+ case EOpMulAssign:
+ case EOpVectorTimesMatrixAssign:
+ case EOpVectorTimesScalarAssign:
+ case EOpMatrixTimesScalarAssign:
+ case EOpMatrixTimesMatrixAssign:
+
+ case EOpDivAssign:
+ case EOpIModAssign:
+
+ case EOpDot:
+ return true;
+ default:
+ return false;
+ }
+}
+
+// A traverser that gathers the following information, used to kick off processing:
+//
+// - For each variable, the AST nodes that modify it.
+// - The set of |precise| return AST node.
+// - The set of |precise| access chains assigned to.
+//
+class InfoGatherTraverser : public TIntermTraverser
+{
+ public:
+ InfoGatherTraverser(ASTInfo *info) : TIntermTraverser(true, false, false), mInfo(info) {}
+
+ bool visitUnary(Visit visit, TIntermUnary *node) override
+ {
+ // If the node is an assignment (i.e. ++ and --), store the relevant information.
+ if (!IsAssignment(node->getOp()))
+ {
+ return true;
+ }
+
+ visitLvalue(node, node->getOperand());
+ return false;
+ }
+
+ bool visitBinary(Visit visit, TIntermBinary *node) override
+ {
+ if (IsAssignment(node->getOp()))
+ {
+ visitLvalue(node, node->getLeft());
+
+ node->getRight()->traverse(this);
+
+ return false;
+ }
+
+ return true;
+ }
+
+ bool visitDeclaration(Visit visit, TIntermDeclaration *node) override
+ {
+ const TIntermSequence &sequence = *(node->getSequence());
+ TIntermSymbol *symbol = sequence.front()->getAsSymbolNode();
+ TIntermBinary *initNode = sequence.front()->getAsBinaryNode();
+ TIntermTyped *initExpression = nullptr;
+
+ if (symbol == nullptr)
+ {
+ ASSERT(initNode->getOp() == EOpInitialize);
+
+ symbol = initNode->getLeft()->getAsSymbolNode();
+ initExpression = initNode->getRight();
+ }
+
+ ASSERT(symbol);
+ ObjectAndAccessChain object = {&symbol->variable(), {}};
+ AddObjectIfPrecise(mInfo, object);
+
+ if (initExpression)
+ {
+ mInfo->variableAssignmentNodeMap[object.variable].push_back(initNode);
+
+ // Visit the init expression, which may itself have assignments.
+ initExpression->traverse(this);
+ }
+
+ return false;
+ }
+
+ bool visitFunctionDefinition(Visit visit, TIntermFunctionDefinition *node) override
+ {
+ mCurrentFunction = node->getFunction();
+
+ for (size_t paramIndex = 0; paramIndex < mCurrentFunction->getParamCount(); ++paramIndex)
+ {
+ ObjectAndAccessChain param = {mCurrentFunction->getParam(paramIndex), {}};
+ AddObjectIfPrecise(mInfo, param);
+ }
+
+ return true;
+ }
+
+ bool visitBranch(Visit visit, TIntermBranch *node) override
+ {
+ if (node->getFlowOp() == EOpReturn && node->getChildCount() == 1 &&
+ mCurrentFunction->getReturnType().isPrecise())
+ {
+ mInfo->preciseReturnNodes.insert(node);
+ }
+
+ return true;
+ }
+
+ bool visitGlobalQualifierDeclaration(Visit visit,
+ TIntermGlobalQualifierDeclaration *node) override
+ {
+ if (node->isPrecise())
+ {
+ ObjectAndAccessChain preciseObject = {&node->getSymbol()->variable(), {}};
+ AddPreciseObject(mInfo, preciseObject);
+ }
+
+ return false;
+ }
+
+ private:
+ void visitLvalue(TIntermOperator *assignmentNode, TIntermTyped *lvalueNode)
+ {
+ AccessChain lvalueChain;
+ const TVariable *lvalueBase = lvalueChain.build(lvalueNode);
+ mInfo->variableAssignmentNodeMap[lvalueBase].push_back(assignmentNode);
+
+ ObjectAndAccessChain lvalue = {lvalueBase, lvalueChain};
+ AddObjectIfPrecise(mInfo, lvalue);
+
+ TraverseIndexNodesOnly(lvalueNode, this);
+ }
+
+ ASTInfo *mInfo = nullptr;
+ const TFunction *mCurrentFunction = nullptr;
+};
+
+// A traverser that, given an access chain, traverses an expression and marks parts of it |precise|.
+// For example, in the expression |Struct1(a, Struct2(b, c), d)|:
+//
+// - Given access chain [1], both |b| and |c| are marked precise.
+// - Given access chain [1, 0], only |b| is marked precise.
+//
+// When access chain is empty, arithmetic nodes are marked |precise| and any access chains found in
+// their children is recursively added for processing.
+//
+// The access chain given to the traverser is derived from the left hand side of an assignment,
+// while the traverser is run on the right hand side.
+class PropagatePreciseTraverser : public TIntermTraverser
+{
+ public:
+ PropagatePreciseTraverser(ASTInfo *info) : TIntermTraverser(true, false, false), mInfo(info) {}
+
+ void propagatePrecise(TIntermNode *expression, const AccessChain &accessChain)
+ {
+ mCurrentAccessChain = accessChain;
+ expression->traverse(this);
+ }
+
+ bool visitUnary(Visit visit, TIntermUnary *node) override
+ {
+ // Unary operations cannot be applied to structures.
+ ASSERT(mCurrentAccessChain.getChain().empty());
+
+ // Mark arithmetic nodes as |precise|.
+ if (IsArithmeticOp(node->getOp()))
+ {
+ node->setIsPrecise();
+ }
+
+ // Mark the operand itself |precise| too.
+ return true;
+ }
+
+ bool visitBinary(Visit visit, TIntermBinary *node) override
+ {
+ if (IsIndexOp(node->getOp()))
+ {
+ // Append the remaining access chain with that of the node, and mark that as |precise|.
+ // For example, if we are evaluating an expression and expecting to mark the access
+ // chain [1, 3] as |precise|, and the node itself has access chain [0, 2] applied to
+ // variable V, then what ends up being |precise| is V with access chain [0, 2, 1, 3].
+ AccessChain nodeAccessChain;
+ const TVariable *baseVariable = nodeAccessChain.build(node);
+ nodeAccessChain.append(mCurrentAccessChain);
+
+ ObjectAndAccessChain preciseObject = {baseVariable, nodeAccessChain};
+ AddPreciseObject(mInfo, preciseObject);
+
+ // Visit index nodes, each of which should be considered |precise| in its entirety.
+ mCurrentAccessChain.clear();
+ TraverseIndexNodesOnly(node, this);
+
+ return false;
+ }
+
+ if (node->getOp() == EOpComma)
+ {
+ // For expr1,expr2, consider only expr2 as that's the one whose calculation is relevant.
+ node->getRight()->traverse(this);
+ return false;
+ }
+
+ // Mark arithmetic nodes as |precise|.
+ if (IsArithmeticOp(node->getOp()))
+ {
+ node->setIsPrecise();
+ }
+
+ if (IsAssignment(node->getOp()) || node->getOp() == EOpInitialize)
+ {
+ // If the node itself is a[...] op= expr, consider only expr as |precise|, as that's the
+ // one whose calculation is significant.
+ node->getRight()->traverse(this);
+
+ // The indices used on the left hand side are also significant in their entirety.
+ mCurrentAccessChain.clear();
+ TraverseIndexNodesOnly(node->getLeft(), this);
+
+ return false;
+ }
+
+ // Binary operations cannot be applied to structures.
+ ASSERT(mCurrentAccessChain.getChain().empty());
+
+ // Mark the operands themselves |precise| too.
+ return true;
+ }
+
+ void visitSymbol(TIntermSymbol *symbol) override
+ {
+ // Mark the symbol together with the current access chain as |precise|.
+ ObjectAndAccessChain preciseObject = {&symbol->variable(), mCurrentAccessChain};
+ AddPreciseObject(mInfo, preciseObject);
+ }
+
+ bool visitAggregate(Visit visit, TIntermAggregate *node) override
+ {
+ // If this is a struct constructor and the access chain is not empty, only apply |precise|
+ // to the field selected by the access chain.
+ const TType &type = node->getType();
+ const bool isStructConstructor =
+ node->getOp() == EOpConstruct && type.getStruct() != nullptr && !type.isArray();
+
+ if (!mCurrentAccessChain.getChain().empty() && isStructConstructor)
+ {
+ size_t selectedFieldIndex = mCurrentAccessChain.getChain().front();
+ mCurrentAccessChain.pop_front(1);
+
+ ASSERT(selectedFieldIndex < node->getChildCount());
+
+ // Visit only said field.
+ node->getChildNode(selectedFieldIndex)->traverse(this);
+ return false;
+ }
+
+ // If this is an array constructor, each element is equally |precise| with the same access
+ // chain. Otherwise there cannot be any access chain for constructors.
+ if (node->getOp() == EOpConstruct)
+ {
+ ASSERT(type.isArray() || mCurrentAccessChain.getChain().empty());
+ return true;
+ }
+
+ // Otherwise this is a function call. The access chain is irrelevant and every (non-out)
+ // parameter of the function call should be considered |precise|.
+ mCurrentAccessChain.clear();
+
+ const TFunction *function = node->getFunction();
+ ASSERT(function);
+
+ for (size_t paramIndex = 0; paramIndex < function->getParamCount(); ++paramIndex)
+ {
+ if (function->getParam(paramIndex)->getType().getQualifier() != EvqParamOut)
+ {
+ node->getChildNode(paramIndex)->traverse(this);
+ }
+ }
+
+ // Mark arithmetic nodes as |precise|.
+ if (IsArithmeticOp(node->getOp()))
+ {
+ node->setIsPrecise();
+ }
+
+ return false;
+ }
+
+ private:
+ ASTInfo *mInfo = nullptr;
+ AccessChain mCurrentAccessChain;
+};
+} // anonymous namespace
+
+void FindPreciseNodes(TCompiler *compiler, TIntermBlock *root)
+{
+ ASTInfo info;
+
+ InfoGatherTraverser infoGather(&info);
+ root->traverse(&infoGather);
+
+ PropagatePreciseTraverser propagator(&info);
+
+ // First, get return expressions out of the way by propagating |precise|.
+ for (TIntermBranch *returnNode : info.preciseReturnNodes)
+ {
+ ASSERT(returnNode->getChildCount() == 1);
+ propagator.propagatePrecise(returnNode->getChildNode(0), {});
+ }
+
+ // Now take |precise| access chains one by one, and propagate their |precise|-ness to the right
+ // hand side of all assignments in which they are on the left hand side, as well as the
+ // arithmetic expression that assigns to them.
+
+ while (!info.preciseObjectsToProcess.empty())
+ {
+ // Get one |precise| object to process.
+ auto first = info.preciseObjectsToProcess.begin();
+ const ObjectAndAccessChain toProcess = *first;
+ info.preciseObjectsToProcess.erase(first);
+
+ // Propagate |precise| to every node where it's assigned to.
+ const TVector<TIntermOperator *> &assignmentNodes =
+ info.variableAssignmentNodeMap[toProcess.variable];
+ for (TIntermOperator *assignmentNode : assignmentNodes)
+ {
+ AccessChain assignmentAccessChain = GetAssignmentAccessChain(assignmentNode);
+
+ // There are two possibilities:
+ //
+ // - The assignment is to a bigger access chain than that which is being processed, in
+ // which case the entire right hand side is marked |precise|,
+ // - The assignment is to a smaller access chain, in which case only the subobject of
+ // the right hand side that corresponds to the remaining part of the access chain must
+ // be marked |precise|.
+ //
+ // For example, if processing |a.b.c| as a |precise| access chain:
+ //
+ // - If the assignment is to |a.b.c.d|, then the entire right hand side must be
+ // |precise|.
+ // - If the assignment is to |a.b|, only the |.c| part of the right hand side expression
+ // must be |precise|.
+ // - If the assignment is to |a.e|, there is nothing to do.
+ //
+ AccessChain remainingAccessChain = toProcess.accessChain;
+ if (!remainingAccessChain.removePrefix(assignmentAccessChain))
+ {
+ continue;
+ }
+
+ propagator.propagatePrecise(assignmentNode, remainingAccessChain);
+ }
+ }
+
+ // The AST nodes now contain information gathered by this post-processing step, and so the tree
+ // must no longer be transformed.
+ compiler->enableValidateNoMoreTransformations();
+}
+
+} // namespace sh
diff --git a/gfx/angle/checkout/src/compiler/translator/tree_util/FindPreciseNodes.h b/gfx/angle/checkout/src/compiler/translator/tree_util/FindPreciseNodes.h
new file mode 100644
index 0000000000..1992ff15af
--- /dev/null
+++ b/gfx/angle/checkout/src/compiler/translator/tree_util/FindPreciseNodes.h
@@ -0,0 +1,25 @@
+//
+// Copyright 2021 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.
+//
+// FindPreciseNodes.h: Propagates |precise| to AST nodes. In SPIR-V, the corresponding decoration
+// (NoContraction) is applied on the intermediate result of operations that affect the |precise|
+// variables, not the variables themselves.
+
+#ifndef COMPILER_TRANSLATOR_TREEUTIL_FINDPRECISENODES_H_
+#define COMPILER_TRANSLATOR_TREEUTIL_FINDPRECISENODES_H_
+
+#include "common/angleutils.h"
+
+namespace sh
+{
+
+class TCompiler;
+class TIntermBlock;
+
+void FindPreciseNodes(TCompiler *compiler, TIntermBlock *root);
+
+} // namespace sh
+
+#endif // COMPILER_TRANSLATOR_TREEUTIL_FINDPRECISENODES_H_
diff --git a/gfx/angle/checkout/src/compiler/translator/tree_util/FindSymbolNode.cpp b/gfx/angle/checkout/src/compiler/translator/tree_util/FindSymbolNode.cpp
new file mode 100644
index 0000000000..2951399390
--- /dev/null
+++ b/gfx/angle/checkout/src/compiler/translator/tree_util/FindSymbolNode.cpp
@@ -0,0 +1,53 @@
+//
+// 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.
+//
+// FindSymbol.cpp:
+// Utility for finding a symbol node inside an AST tree.
+
+#include "compiler/translator/tree_util/FindSymbolNode.h"
+
+#include "compiler/translator/ImmutableString.h"
+#include "compiler/translator/Symbol.h"
+#include "compiler/translator/tree_util/IntermTraverse.h"
+
+namespace sh
+{
+
+namespace
+{
+
+class SymbolFinder : public TIntermTraverser
+{
+ public:
+ SymbolFinder(const ImmutableString &symbolName)
+ : TIntermTraverser(true, false, false), mSymbolName(symbolName), mNodeFound(nullptr)
+ {}
+
+ void visitSymbol(TIntermSymbol *node) override
+ {
+ if (node->variable().symbolType() != SymbolType::Empty && node->getName() == mSymbolName)
+ {
+ mNodeFound = node;
+ }
+ }
+
+ bool isFound() const { return mNodeFound != nullptr; }
+ const TIntermSymbol *getNode() const { return mNodeFound; }
+
+ private:
+ ImmutableString mSymbolName;
+ TIntermSymbol *mNodeFound;
+};
+
+} // anonymous namespace
+
+const TIntermSymbol *FindSymbolNode(TIntermNode *root, const ImmutableString &symbolName)
+{
+ SymbolFinder finder(symbolName);
+ root->traverse(&finder);
+ return finder.getNode();
+}
+
+} // namespace sh
diff --git a/gfx/angle/checkout/src/compiler/translator/tree_util/FindSymbolNode.h b/gfx/angle/checkout/src/compiler/translator/tree_util/FindSymbolNode.h
new file mode 100644
index 0000000000..09349484a4
--- /dev/null
+++ b/gfx/angle/checkout/src/compiler/translator/tree_util/FindSymbolNode.h
@@ -0,0 +1,23 @@
+//
+// 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.
+//
+// FindSymbolNode.h:
+// Utility for finding a symbol node inside an AST tree.
+
+#ifndef COMPILER_TRANSLATOR_TREEUTIL_FINDSYMBOLNODE_H_
+#define COMPILER_TRANSLATOR_TREEUTIL_FINDSYMBOLNODE_H_
+
+namespace sh
+{
+
+class ImmutableString;
+class TIntermNode;
+class TIntermSymbol;
+
+const TIntermSymbol *FindSymbolNode(TIntermNode *root, const ImmutableString &symbolName);
+
+} // namespace sh
+
+#endif // COMPILER_TRANSLATOR_TREEUTIL_FINDSYMBOLNODE_H_
diff --git a/gfx/angle/checkout/src/compiler/translator/tree_util/IntermNodePatternMatcher.cpp b/gfx/angle/checkout/src/compiler/translator/tree_util/IntermNodePatternMatcher.cpp
new file mode 100644
index 0000000000..59241bcf7a
--- /dev/null
+++ b/gfx/angle/checkout/src/compiler/translator/tree_util/IntermNodePatternMatcher.cpp
@@ -0,0 +1,213 @@
+//
+// 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.
+//
+// IntermNodePatternMatcher is a helper class for matching node trees to given patterns.
+// It can be used whenever the same checks for certain node structures are common to multiple AST
+// traversers.
+//
+
+#include "compiler/translator/tree_util/IntermNodePatternMatcher.h"
+
+#include "compiler/translator/IntermNode.h"
+#include "compiler/translator/SymbolTable.h"
+#include "compiler/translator/util.h"
+
+namespace sh
+{
+
+namespace
+{
+
+bool ContainsMatrixNode(const TIntermSequence &sequence)
+{
+ for (size_t ii = 0; ii < sequence.size(); ++ii)
+ {
+ TIntermTyped *node = sequence[ii]->getAsTyped();
+ if (node && node->isMatrix())
+ return true;
+ }
+ return false;
+}
+
+bool ContainsVectorNode(const TIntermSequence &sequence)
+{
+ for (size_t ii = 0; ii < sequence.size(); ++ii)
+ {
+ TIntermTyped *node = sequence[ii]->getAsTyped();
+ if (node && node->isVector())
+ return true;
+ }
+ return false;
+}
+
+} // anonymous namespace
+
+IntermNodePatternMatcher::IntermNodePatternMatcher(const unsigned int mask) : mMask(mask) {}
+
+// static
+bool IntermNodePatternMatcher::IsDynamicIndexingOfNonSSBOVectorOrMatrix(TIntermBinary *node)
+{
+ return IsDynamicIndexingOfVectorOrMatrix(node) && !IsInShaderStorageBlock(node->getLeft());
+}
+
+// static
+bool IntermNodePatternMatcher::IsDynamicIndexingOfVectorOrMatrix(TIntermBinary *node)
+{
+ return node->getOp() == EOpIndexIndirect && !node->getLeft()->isArray() &&
+ node->getLeft()->getBasicType() != EbtStruct;
+}
+
+// static
+bool IntermNodePatternMatcher::IsDynamicIndexingOfSwizzledVector(TIntermBinary *node)
+{
+ return IsDynamicIndexingOfVectorOrMatrix(node) && node->getLeft()->getAsSwizzleNode();
+}
+
+bool IntermNodePatternMatcher::matchInternal(TIntermBinary *node, TIntermNode *parentNode) const
+{
+ if ((mMask & kExpressionReturningArray) != 0)
+ {
+ if (node->isArray() && node->getOp() == EOpAssign && parentNode != nullptr &&
+ !parentNode->getAsBlock())
+ {
+ return true;
+ }
+ }
+
+ if ((mMask & kUnfoldedShortCircuitExpression) != 0)
+ {
+ if (node->getRight()->hasSideEffects() &&
+ (node->getOp() == EOpLogicalOr || node->getOp() == EOpLogicalAnd))
+ {
+ return true;
+ }
+ }
+ return false;
+}
+
+bool IntermNodePatternMatcher::match(TIntermUnary *node) const
+{
+ if ((mMask & kArrayLengthMethod) != 0)
+ {
+ if (node->getOp() == EOpArrayLength)
+ {
+ return true;
+ }
+ }
+ return false;
+}
+
+bool IntermNodePatternMatcher::match(TIntermBinary *node, TIntermNode *parentNode) const
+{
+ // L-value tracking information is needed to check for dynamic indexing in L-value.
+ // Traversers that don't track l-values can still use this class and match binary nodes with
+ // this variation of this method if they don't need to check for dynamic indexing in l-values.
+ ASSERT((mMask & kDynamicIndexingOfVectorOrMatrixInLValue) == 0);
+ return matchInternal(node, parentNode);
+}
+
+bool IntermNodePatternMatcher::match(TIntermBinary *node,
+ TIntermNode *parentNode,
+ bool isLValueRequiredHere) const
+{
+ if (matchInternal(node, parentNode))
+ {
+ return true;
+ }
+ if ((mMask & kDynamicIndexingOfVectorOrMatrixInLValue) != 0)
+ {
+ if (isLValueRequiredHere && IsDynamicIndexingOfVectorOrMatrix(node))
+ {
+ return true;
+ }
+ }
+ return false;
+}
+
+bool IntermNodePatternMatcher::match(TIntermAggregate *node, TIntermNode *parentNode) const
+{
+ if ((mMask & kExpressionReturningArray) != 0)
+ {
+ if (parentNode != nullptr)
+ {
+ TIntermBinary *parentBinary = parentNode->getAsBinaryNode();
+ bool parentIsAssignment =
+ (parentBinary != nullptr &&
+ (parentBinary->getOp() == EOpAssign || parentBinary->getOp() == EOpInitialize));
+
+ if (node->getType().isArray() && !parentIsAssignment &&
+ (node->isConstructor() || node->isFunctionCall() ||
+ (BuiltInGroup::IsBuiltIn(node->getOp()) &&
+ !BuiltInGroup::IsMath(node->getOp()))) &&
+ !parentNode->getAsBlock())
+ {
+ return true;
+ }
+ }
+ }
+ if ((mMask & kScalarizedVecOrMatConstructor) != 0)
+ {
+ if (node->getOp() == EOpConstruct)
+ {
+ if (node->getType().isVector() && ContainsMatrixNode(*(node->getSequence())))
+ {
+ return true;
+ }
+ else if (node->getType().isMatrix() && ContainsVectorNode(*(node->getSequence())))
+ {
+ return true;
+ }
+ }
+ }
+ return false;
+}
+
+bool IntermNodePatternMatcher::match(TIntermTernary *node) const
+{
+ if ((mMask & kUnfoldedShortCircuitExpression) != 0)
+ {
+ return true;
+ }
+ return false;
+}
+
+bool IntermNodePatternMatcher::match(TIntermDeclaration *node) const
+{
+ if ((mMask & kMultiDeclaration) != 0)
+ {
+ if (node->getSequence()->size() > 1)
+ {
+ return true;
+ }
+ }
+ if ((mMask & kArrayDeclaration) != 0)
+ {
+ if (node->getSequence()->front()->getAsTyped()->getType().isStructureContainingArrays())
+ {
+ return true;
+ }
+ // Need to check from all declarators whether they are arrays since that may vary between
+ // declarators.
+ for (TIntermNode *declarator : *node->getSequence())
+ {
+ if (declarator->getAsTyped()->isArray())
+ {
+ return true;
+ }
+ }
+ }
+ if ((mMask & kNamelessStructDeclaration) != 0)
+ {
+ TIntermTyped *declarator = node->getSequence()->front()->getAsTyped();
+ if (declarator->getBasicType() == EbtStruct &&
+ declarator->getType().getStruct()->symbolType() == SymbolType::Empty)
+ {
+ return true;
+ }
+ }
+ return false;
+}
+
+} // namespace sh
diff --git a/gfx/angle/checkout/src/compiler/translator/tree_util/IntermNodePatternMatcher.h b/gfx/angle/checkout/src/compiler/translator/tree_util/IntermNodePatternMatcher.h
new file mode 100644
index 0000000000..b8321b930c
--- /dev/null
+++ b/gfx/angle/checkout/src/compiler/translator/tree_util/IntermNodePatternMatcher.h
@@ -0,0 +1,81 @@
+//
+// 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.
+//
+// IntermNodePatternMatcher is a helper class for matching node trees to given patterns.
+// It can be used whenever the same checks for certain node structures are common to multiple AST
+// traversers.
+//
+
+#ifndef COMPILER_TRANSLATOR_TREEUTIL_INTERMNODEPATTERNMATCHER_H_
+#define COMPILER_TRANSLATOR_TREEUTIL_INTERMNODEPATTERNMATCHER_H_
+
+namespace sh
+{
+
+class TIntermAggregate;
+class TIntermBinary;
+class TIntermDeclaration;
+class TIntermNode;
+class TIntermTernary;
+class TIntermUnary;
+
+class IntermNodePatternMatcher
+{
+ public:
+ static bool IsDynamicIndexingOfNonSSBOVectorOrMatrix(TIntermBinary *node);
+ static bool IsDynamicIndexingOfVectorOrMatrix(TIntermBinary *node);
+ static bool IsDynamicIndexingOfSwizzledVector(TIntermBinary *node);
+
+ enum PatternType : unsigned int
+ {
+ // Matches expressions that are unfolded to if statements by UnfoldShortCircuitToIf
+ kUnfoldedShortCircuitExpression = 1u << 0u,
+
+ // Matches expressions that return arrays with the exception of simple statements where a
+ // constructor or function call result is assigned.
+ kExpressionReturningArray = 1u << 1u,
+
+ // Matches dynamic indexing of vectors or matrices in l-values.
+ kDynamicIndexingOfVectorOrMatrixInLValue = 1u << 2u,
+
+ // Matches declarations with more than one declared variables.
+ kMultiDeclaration = 1u << 3u,
+
+ // Matches declarations of arrays.
+ kArrayDeclaration = 1u << 4u,
+
+ // Matches declarations of structs where the struct type does not have a name.
+ kNamelessStructDeclaration = 1u << 5u,
+
+ // Matches array length() method.
+ kArrayLengthMethod = 1u << 6u,
+
+ // Matches a vector or matrix constructor whose arguments are scalarized by the
+ // scalarizeVecOrMatConstructorArguments workaround.
+ kScalarizedVecOrMatConstructor = 1u << 7u,
+ };
+ IntermNodePatternMatcher(const unsigned int mask);
+
+ bool match(TIntermUnary *node) const;
+
+ bool match(TIntermBinary *node, TIntermNode *parentNode) const;
+
+ // Use this version for checking binary node matches in case you're using flag
+ // kDynamicIndexingOfVectorOrMatrixInLValue.
+ bool match(TIntermBinary *node, TIntermNode *parentNode, bool isLValueRequiredHere) const;
+
+ bool match(TIntermAggregate *node, TIntermNode *parentNode) const;
+ bool match(TIntermTernary *node) const;
+ bool match(TIntermDeclaration *node) const;
+
+ private:
+ const unsigned int mMask;
+
+ bool matchInternal(TIntermBinary *node, TIntermNode *parentNode) const;
+};
+
+} // namespace sh
+
+#endif // COMPILER_TRANSLATOR_TREEUTIL_INTERMNODEPATTERNMATCHER_H_
diff --git a/gfx/angle/checkout/src/compiler/translator/tree_util/IntermNode_util.cpp b/gfx/angle/checkout/src/compiler/translator/tree_util/IntermNode_util.cpp
new file mode 100644
index 0000000000..a7bb211425
--- /dev/null
+++ b/gfx/angle/checkout/src/compiler/translator/tree_util/IntermNode_util.cpp
@@ -0,0 +1,436 @@
+//
+// Copyright 2017 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.
+//
+// IntermNode_util.cpp: High-level utilities for creating AST nodes and node hierarchies. Mostly
+// meant to be used in AST transforms.
+
+#include "compiler/translator/tree_util/IntermNode_util.h"
+
+#include "compiler/translator/FunctionLookup.h"
+#include "compiler/translator/SymbolTable.h"
+
+namespace sh
+{
+
+namespace
+{
+
+const TFunction *LookUpBuiltInFunction(const char *name,
+ const TIntermSequence *arguments,
+ const TSymbolTable &symbolTable,
+ int shaderVersion)
+{
+ const ImmutableString &mangledName = TFunctionLookup::GetMangledName(name, *arguments);
+ const TSymbol *symbol = symbolTable.findBuiltIn(mangledName, shaderVersion);
+ if (symbol)
+ {
+ ASSERT(symbol->isFunction());
+ return static_cast<const TFunction *>(symbol);
+ }
+ return nullptr;
+}
+
+} // anonymous namespace
+
+TIntermFunctionPrototype *CreateInternalFunctionPrototypeNode(const TFunction &func)
+{
+ return new TIntermFunctionPrototype(&func);
+}
+
+TIntermFunctionDefinition *CreateInternalFunctionDefinitionNode(const TFunction &func,
+ TIntermBlock *functionBody)
+{
+ return new TIntermFunctionDefinition(new TIntermFunctionPrototype(&func), functionBody);
+}
+
+TIntermTyped *CreateZeroNode(const TType &type)
+{
+ TType constType(type);
+ constType.setQualifier(EvqConst);
+
+ if (!type.isArray() && type.getBasicType() != EbtStruct)
+ {
+ size_t size = constType.getObjectSize();
+ TConstantUnion *u = new TConstantUnion[size];
+ for (size_t i = 0; i < size; ++i)
+ {
+ switch (type.getBasicType())
+ {
+ case EbtFloat:
+ u[i].setFConst(0.0f);
+ break;
+ case EbtInt:
+ u[i].setIConst(0);
+ break;
+ case EbtUInt:
+ u[i].setUConst(0u);
+ break;
+ case EbtBool:
+ u[i].setBConst(false);
+ break;
+ default:
+ // CreateZeroNode is called by ParseContext that keeps parsing even when an
+ // error occurs, so it is possible for CreateZeroNode to be called with
+ // non-basic types. This happens only on error condition but CreateZeroNode
+ // needs to return a value with the correct type to continue the type check.
+ // That's why we handle non-basic type by setting whatever value, we just need
+ // the type to be right.
+ u[i].setIConst(42);
+ break;
+ }
+ }
+
+ TIntermConstantUnion *node = new TIntermConstantUnion(u, constType);
+ return node;
+ }
+
+ TIntermSequence arguments;
+
+ if (type.isArray())
+ {
+ TType elementType(type);
+ elementType.toArrayElementType();
+
+ size_t arraySize = type.getOutermostArraySize();
+ for (size_t i = 0; i < arraySize; ++i)
+ {
+ arguments.push_back(CreateZeroNode(elementType));
+ }
+ }
+ else
+ {
+ ASSERT(type.getBasicType() == EbtStruct);
+
+ const TStructure *structure = type.getStruct();
+ for (const auto &field : structure->fields())
+ {
+ arguments.push_back(CreateZeroNode(*field->type()));
+ }
+ }
+
+ return TIntermAggregate::CreateConstructor(constType, &arguments);
+}
+
+TIntermConstantUnion *CreateFloatNode(float value, TPrecision precision)
+{
+ TConstantUnion *u = new TConstantUnion[1];
+ u[0].setFConst(value);
+
+ TType type(EbtFloat, precision, EvqConst, 1);
+ return new TIntermConstantUnion(u, type);
+}
+
+TIntermConstantUnion *CreateVecNode(const float values[],
+ unsigned int vecSize,
+ TPrecision precision)
+{
+ TConstantUnion *u = new TConstantUnion[vecSize];
+ for (unsigned int channel = 0; channel < vecSize; ++channel)
+ {
+ u[channel].setFConst(values[channel]);
+ }
+
+ TType type(EbtFloat, precision, EvqConst, static_cast<uint8_t>(vecSize));
+ return new TIntermConstantUnion(u, type);
+}
+
+TIntermConstantUnion *CreateUVecNode(const unsigned int values[],
+ unsigned int vecSize,
+ TPrecision precision)
+{
+ TConstantUnion *u = new TConstantUnion[vecSize];
+ for (unsigned int channel = 0; channel < vecSize; ++channel)
+ {
+ u[channel].setUConst(values[channel]);
+ }
+
+ TType type(EbtUInt, precision, EvqConst, static_cast<uint8_t>(vecSize));
+ return new TIntermConstantUnion(u, type);
+}
+
+TIntermConstantUnion *CreateIndexNode(int index)
+{
+ TConstantUnion *u = new TConstantUnion[1];
+ u[0].setIConst(index);
+
+ TType type(EbtInt, EbpHigh, EvqConst, 1);
+ return new TIntermConstantUnion(u, type);
+}
+
+TIntermConstantUnion *CreateUIntNode(unsigned int value)
+{
+ TConstantUnion *u = new TConstantUnion[1];
+ u[0].setUConst(value);
+
+ TType type(EbtUInt, EbpHigh, EvqConst, 1);
+ return new TIntermConstantUnion(u, type);
+}
+
+TIntermConstantUnion *CreateBoolNode(bool value)
+{
+ TConstantUnion *u = new TConstantUnion[1];
+ u[0].setBConst(value);
+
+ TType type(EbtBool, EbpUndefined, EvqConst, 1);
+ return new TIntermConstantUnion(u, type);
+}
+
+TVariable *CreateTempVariable(TSymbolTable *symbolTable, const TType *type)
+{
+ ASSERT(symbolTable != nullptr);
+ // TODO(oetuaho): Might be useful to sanitize layout qualifier etc. on the type of the created
+ // variable. This might need to be done in other places as well.
+ return new TVariable(symbolTable, kEmptyImmutableString, type, SymbolType::AngleInternal);
+}
+
+TVariable *CreateTempVariable(TSymbolTable *symbolTable, const TType *type, TQualifier qualifier)
+{
+ ASSERT(symbolTable != nullptr);
+ if (type->getQualifier() == qualifier)
+ {
+ return CreateTempVariable(symbolTable, type);
+ }
+ TType *typeWithQualifier = new TType(*type);
+ typeWithQualifier->setQualifier(qualifier);
+ return CreateTempVariable(symbolTable, typeWithQualifier);
+}
+
+TIntermSymbol *CreateTempSymbolNode(const TVariable *tempVariable)
+{
+ ASSERT(tempVariable->symbolType() == SymbolType::AngleInternal);
+ ASSERT(tempVariable->getType().getQualifier() == EvqTemporary ||
+ tempVariable->getType().getQualifier() == EvqConst ||
+ tempVariable->getType().getQualifier() == EvqGlobal);
+ return new TIntermSymbol(tempVariable);
+}
+
+TIntermDeclaration *CreateTempDeclarationNode(const TVariable *tempVariable)
+{
+ TIntermDeclaration *tempDeclaration = new TIntermDeclaration();
+ tempDeclaration->appendDeclarator(CreateTempSymbolNode(tempVariable));
+ return tempDeclaration;
+}
+
+TIntermDeclaration *CreateTempInitDeclarationNode(const TVariable *tempVariable,
+ TIntermTyped *initializer)
+{
+ ASSERT(initializer != nullptr);
+ TIntermSymbol *tempSymbol = CreateTempSymbolNode(tempVariable);
+ TIntermDeclaration *tempDeclaration = new TIntermDeclaration();
+ TIntermBinary *tempInit = new TIntermBinary(EOpInitialize, tempSymbol, initializer);
+ tempDeclaration->appendDeclarator(tempInit);
+ return tempDeclaration;
+}
+
+TIntermBinary *CreateTempAssignmentNode(const TVariable *tempVariable, TIntermTyped *rightNode)
+{
+ ASSERT(rightNode != nullptr);
+ TIntermSymbol *tempSymbol = CreateTempSymbolNode(tempVariable);
+ return new TIntermBinary(EOpAssign, tempSymbol, rightNode);
+}
+
+TVariable *DeclareTempVariable(TSymbolTable *symbolTable,
+ const TType *type,
+ TQualifier qualifier,
+ TIntermDeclaration **declarationOut)
+{
+ TVariable *variable = CreateTempVariable(symbolTable, type, qualifier);
+ *declarationOut = CreateTempDeclarationNode(variable);
+ return variable;
+}
+
+TVariable *DeclareTempVariable(TSymbolTable *symbolTable,
+ TIntermTyped *initializer,
+ TQualifier qualifier,
+ TIntermDeclaration **declarationOut)
+{
+ TVariable *variable =
+ CreateTempVariable(symbolTable, new TType(initializer->getType()), qualifier);
+ *declarationOut = CreateTempInitDeclarationNode(variable, initializer);
+ return variable;
+}
+
+std::pair<const TVariable *, const TVariable *> DeclareStructure(
+ TIntermBlock *root,
+ TSymbolTable *symbolTable,
+ TFieldList *fieldList,
+ TQualifier qualifier,
+ const TMemoryQualifier &memoryQualifier,
+ uint32_t arraySize,
+ const ImmutableString &structTypeName,
+ const ImmutableString *structInstanceName)
+{
+ TStructure *structure =
+ new TStructure(symbolTable, structTypeName, fieldList, SymbolType::AngleInternal);
+
+ auto makeStructureType = [&](bool isStructSpecifier) {
+ TType *structureType = new TType(structure, isStructSpecifier);
+ structureType->setQualifier(qualifier);
+ structureType->setMemoryQualifier(memoryQualifier);
+ if (arraySize > 0)
+ {
+ structureType->makeArray(arraySize);
+ }
+ return structureType;
+ };
+
+ TIntermSequence insertSequence;
+
+ TVariable *typeVar = new TVariable(symbolTable, kEmptyImmutableString, makeStructureType(true),
+ SymbolType::Empty);
+ insertSequence.push_back(new TIntermDeclaration{typeVar});
+
+ TVariable *instanceVar = nullptr;
+ if (structInstanceName)
+ {
+ instanceVar = new TVariable(symbolTable, *structInstanceName, makeStructureType(false),
+ SymbolType::AngleInternal);
+ insertSequence.push_back(new TIntermDeclaration{instanceVar});
+ }
+
+ size_t firstFunctionIndex = FindFirstFunctionDefinitionIndex(root);
+ root->insertChildNodes(firstFunctionIndex, insertSequence);
+
+ return {typeVar, instanceVar};
+}
+
+const TVariable *DeclareInterfaceBlock(TIntermBlock *root,
+ TSymbolTable *symbolTable,
+ TFieldList *fieldList,
+ TQualifier qualifier,
+ const TLayoutQualifier &layoutQualifier,
+ const TMemoryQualifier &memoryQualifier,
+ uint32_t arraySize,
+ const ImmutableString &blockTypeName,
+ const ImmutableString &blockVariableName)
+{
+ // Define an interface block.
+ TInterfaceBlock *interfaceBlock = new TInterfaceBlock(
+ symbolTable, blockTypeName, fieldList, layoutQualifier, SymbolType::AngleInternal);
+
+ // Turn the inteface block into a declaration.
+ TType *interfaceBlockType = new TType(interfaceBlock, qualifier, layoutQualifier);
+ interfaceBlockType->setMemoryQualifier(memoryQualifier);
+ if (arraySize > 0)
+ {
+ interfaceBlockType->makeArray(arraySize);
+ }
+
+ TIntermDeclaration *interfaceBlockDecl = new TIntermDeclaration;
+ TVariable *interfaceBlockVar =
+ new TVariable(symbolTable, blockVariableName, interfaceBlockType,
+ blockVariableName.empty() ? SymbolType::Empty : SymbolType::AngleInternal);
+ TIntermSymbol *interfaceBlockDeclarator = new TIntermSymbol(interfaceBlockVar);
+ interfaceBlockDecl->appendDeclarator(interfaceBlockDeclarator);
+
+ // Insert the declarations before the first function.
+ TIntermSequence insertSequence;
+ insertSequence.push_back(interfaceBlockDecl);
+
+ size_t firstFunctionIndex = FindFirstFunctionDefinitionIndex(root);
+ root->insertChildNodes(firstFunctionIndex, insertSequence);
+
+ return interfaceBlockVar;
+}
+
+TIntermBlock *EnsureBlock(TIntermNode *node)
+{
+ if (node == nullptr)
+ return nullptr;
+ TIntermBlock *blockNode = node->getAsBlock();
+ if (blockNode != nullptr)
+ return blockNode;
+
+ blockNode = new TIntermBlock();
+ blockNode->setLine(node->getLine());
+ blockNode->appendStatement(node);
+ return blockNode;
+}
+
+TIntermSymbol *ReferenceGlobalVariable(const ImmutableString &name, const TSymbolTable &symbolTable)
+{
+ const TSymbol *symbol = symbolTable.findGlobal(name);
+ ASSERT(symbol && symbol->isVariable());
+ return new TIntermSymbol(static_cast<const TVariable *>(symbol));
+}
+
+TIntermSymbol *ReferenceBuiltInVariable(const ImmutableString &name,
+ const TSymbolTable &symbolTable,
+ int shaderVersion)
+{
+ const TVariable *var =
+ static_cast<const TVariable *>(symbolTable.findBuiltIn(name, shaderVersion));
+ ASSERT(var);
+ return new TIntermSymbol(var);
+}
+
+TIntermTyped *CreateBuiltInFunctionCallNode(const char *name,
+ TIntermSequence *arguments,
+ const TSymbolTable &symbolTable,
+ int shaderVersion)
+{
+ const TFunction *fn = LookUpBuiltInFunction(name, arguments, symbolTable, shaderVersion);
+ ASSERT(fn);
+ TOperator op = fn->getBuiltInOp();
+ if (BuiltInGroup::IsMath(op) && arguments->size() == 1)
+ {
+ return new TIntermUnary(op, arguments->at(0)->getAsTyped(), fn);
+ }
+ return TIntermAggregate::CreateBuiltInFunctionCall(*fn, arguments);
+}
+
+TIntermTyped *CreateBuiltInFunctionCallNode(const char *name,
+ const std::initializer_list<TIntermNode *> &arguments,
+ const TSymbolTable &symbolTable,
+ int shaderVersion)
+{
+ TIntermSequence argSequence(arguments);
+ return CreateBuiltInFunctionCallNode(name, &argSequence, symbolTable, shaderVersion);
+}
+
+TIntermTyped *CreateBuiltInUnaryFunctionCallNode(const char *name,
+ TIntermTyped *argument,
+ const TSymbolTable &symbolTable,
+ int shaderVersion)
+{
+ return CreateBuiltInFunctionCallNode(name, {argument}, symbolTable, shaderVersion);
+}
+
+int GetESSLOrGLSLVersion(ShShaderSpec spec, int esslVersion, int glslVersion)
+{
+ return IsDesktopGLSpec(spec) ? glslVersion : esslVersion;
+}
+
+// Returns true if a block ends in a branch (break, continue, return, etc). This is only correct
+// after PruneNoOps, because it expects empty blocks after a branch to have been already pruned,
+// i.e. a block can only end in a branch if its last statement is a branch or is a block ending in
+// branch.
+bool EndsInBranch(TIntermBlock *block)
+{
+ while (block != nullptr)
+ {
+ // Get the last statement of the block.
+ TIntermSequence &statements = *block->getSequence();
+ if (statements.empty())
+ {
+ return false;
+ }
+
+ TIntermNode *lastStatement = statements.back();
+
+ // If it's a branch itself, we have the answer.
+ if (lastStatement->getAsBranchNode())
+ {
+ return true;
+ }
+
+ // Otherwise, see if it's a block that ends in a branch
+ block = lastStatement->getAsBlock();
+ }
+
+ return false;
+}
+
+} // namespace sh
diff --git a/gfx/angle/checkout/src/compiler/translator/tree_util/IntermNode_util.h b/gfx/angle/checkout/src/compiler/translator/tree_util/IntermNode_util.h
new file mode 100644
index 0000000000..5cf0a117d3
--- /dev/null
+++ b/gfx/angle/checkout/src/compiler/translator/tree_util/IntermNode_util.h
@@ -0,0 +1,128 @@
+//
+// Copyright 2017 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.
+//
+// IntermNode_util.h: High-level utilities for creating AST nodes and node hierarchies. Mostly meant
+// to be used in AST transforms.
+
+#ifndef COMPILER_TRANSLATOR_INTERMNODEUTIL_H_
+#define COMPILER_TRANSLATOR_INTERMNODEUTIL_H_
+
+#include "compiler/translator/IntermNode.h"
+#include "compiler/translator/tree_util/FindFunction.h"
+
+namespace sh
+{
+
+class TSymbolTable;
+class TVariable;
+
+TIntermFunctionPrototype *CreateInternalFunctionPrototypeNode(const TFunction &func);
+TIntermFunctionDefinition *CreateInternalFunctionDefinitionNode(const TFunction &func,
+ TIntermBlock *functionBody);
+
+TIntermTyped *CreateZeroNode(const TType &type);
+TIntermConstantUnion *CreateFloatNode(float value, TPrecision precision);
+TIntermConstantUnion *CreateVecNode(const float values[],
+ unsigned int vecSize,
+ TPrecision precision);
+TIntermConstantUnion *CreateUVecNode(const unsigned int values[],
+ unsigned int vecSize,
+ TPrecision precision);
+TIntermConstantUnion *CreateIndexNode(int index);
+TIntermConstantUnion *CreateUIntNode(unsigned int value);
+TIntermConstantUnion *CreateBoolNode(bool value);
+
+TVariable *CreateTempVariable(TSymbolTable *symbolTable, const TType *type);
+TVariable *CreateTempVariable(TSymbolTable *symbolTable, const TType *type, TQualifier qualifier);
+
+TIntermSymbol *CreateTempSymbolNode(const TVariable *tempVariable);
+TIntermDeclaration *CreateTempDeclarationNode(const TVariable *tempVariable);
+TIntermDeclaration *CreateTempInitDeclarationNode(const TVariable *tempVariable,
+ TIntermTyped *initializer);
+TIntermBinary *CreateTempAssignmentNode(const TVariable *tempVariable, TIntermTyped *rightNode);
+
+TVariable *DeclareTempVariable(TSymbolTable *symbolTable,
+ const TType *type,
+ TQualifier qualifier,
+ TIntermDeclaration **declarationOut);
+TVariable *DeclareTempVariable(TSymbolTable *symbolTable,
+ TIntermTyped *initializer,
+ TQualifier qualifier,
+ TIntermDeclaration **declarationOut);
+std::pair<const TVariable *, const TVariable *> DeclareStructure(
+ TIntermBlock *root,
+ TSymbolTable *symbolTable,
+ TFieldList *fieldList,
+ TQualifier qualifier,
+ const TMemoryQualifier &memoryQualifier,
+ uint32_t arraySize,
+ const ImmutableString &structTypeName,
+ const ImmutableString *structInstanceName);
+const TVariable *DeclareInterfaceBlock(TIntermBlock *root,
+ TSymbolTable *symbolTable,
+ TFieldList *fieldList,
+ TQualifier qualifier,
+ const TLayoutQualifier &layoutQualifier,
+ const TMemoryQualifier &memoryQualifier,
+ uint32_t arraySize,
+ const ImmutableString &blockTypeName,
+ const ImmutableString &blockVariableName);
+
+// If the input node is nullptr, return nullptr.
+// If the input node is a block node, return it.
+// If the input node is not a block node, put it inside a block node and return that.
+TIntermBlock *EnsureBlock(TIntermNode *node);
+
+// Should be called from inside Compiler::compileTreeImpl() where the global level is in scope.
+TIntermSymbol *ReferenceGlobalVariable(const ImmutableString &name,
+ const TSymbolTable &symbolTable);
+
+// Note: this can't access desktop GLSL built-ins. Those can only be accessed directly through
+// BuiltIn.h.
+TIntermSymbol *ReferenceBuiltInVariable(const ImmutableString &name,
+ const TSymbolTable &symbolTable,
+ int shaderVersion);
+
+TIntermTyped *CreateBuiltInFunctionCallNode(const char *name,
+ TIntermSequence *arguments,
+ const TSymbolTable &symbolTable,
+ int shaderVersion);
+TIntermTyped *CreateBuiltInFunctionCallNode(const char *name,
+ const std::initializer_list<TIntermNode *> &arguments,
+ const TSymbolTable &symbolTable,
+ int shaderVersion);
+TIntermTyped *CreateBuiltInUnaryFunctionCallNode(const char *name,
+ TIntermTyped *argument,
+ const TSymbolTable &symbolTable,
+ int shaderVersion);
+
+int GetESSLOrGLSLVersion(ShShaderSpec spec, int esslVersion, int glslVersion);
+
+inline void GetSwizzleIndex(TVector<int> *indexOut) {}
+
+template <typename T, typename... ArgsT>
+void GetSwizzleIndex(TVector<int> *indexOut, T arg, ArgsT... args)
+{
+ indexOut->push_back(arg);
+ GetSwizzleIndex(indexOut, args...);
+}
+
+template <typename... ArgsT>
+TIntermSwizzle *CreateSwizzle(TIntermTyped *reference, ArgsT... args)
+{
+ TVector<int> swizzleIndex;
+ GetSwizzleIndex(&swizzleIndex, args...);
+ return new TIntermSwizzle(reference, swizzleIndex);
+}
+
+// Returns true if a block ends in a branch (break, continue, return, etc). This is only correct
+// after PruneNoOps, because it expects empty blocks after a branch to have been already pruned,
+// i.e. a block can only end in a branch if its last statement is a branch or is a block ending in
+// branch.
+bool EndsInBranch(TIntermBlock *block);
+
+} // namespace sh
+
+#endif // COMPILER_TRANSLATOR_INTERMNODEUTIL_H_
diff --git a/gfx/angle/checkout/src/compiler/translator/tree_util/IntermRebuild.cpp b/gfx/angle/checkout/src/compiler/translator/tree_util/IntermRebuild.cpp
new file mode 100644
index 0000000000..667535fa63
--- /dev/null
+++ b/gfx/angle/checkout/src/compiler/translator/tree_util/IntermRebuild.cpp
@@ -0,0 +1,1046 @@
+//
+// Copyright 2020 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.
+//
+
+#include <algorithm>
+
+#include "compiler/translator/Compiler.h"
+#include "compiler/translator/SymbolTable.h"
+#include "compiler/translator/tree_util/AsNode.h"
+#include "compiler/translator/tree_util/IntermRebuild.h"
+
+#define GUARD2(cond, failVal) \
+ do \
+ { \
+ if (!(cond)) \
+ { \
+ return failVal; \
+ } \
+ } while (false)
+
+#define GUARD(cond) GUARD2(cond, nullptr)
+
+namespace sh
+{
+
+template <typename T, typename U>
+ANGLE_INLINE bool AllBits(T haystack, U needle)
+{
+ return (haystack & needle) == needle;
+}
+
+template <typename T, typename U>
+ANGLE_INLINE bool AnyBits(T haystack, U needle)
+{
+ return (haystack & needle) != 0;
+}
+
+////////////////////////////////////////////////////////////////////////////////
+
+TIntermRebuild::BaseResult::BaseResult(BaseResult &other)
+ : mAction(other.mAction),
+ mVisit(other.mVisit),
+ mSingle(other.mSingle),
+ mMulti(std::move(other.mMulti))
+{}
+
+TIntermRebuild::BaseResult::BaseResult(TIntermNode &node, VisitBits visit)
+ : mAction(Action::ReplaceSingle), mVisit(visit), mSingle(&node)
+{}
+
+TIntermRebuild::BaseResult::BaseResult(TIntermNode *node, VisitBits visit)
+ : mAction(node ? Action::ReplaceSingle : Action::Drop),
+ mVisit(node ? visit : VisitBits::Neither),
+ mSingle(node)
+{}
+
+TIntermRebuild::BaseResult::BaseResult(std::nullptr_t)
+ : mAction(Action::Drop), mVisit(VisitBits::Neither), mSingle(nullptr)
+{}
+
+TIntermRebuild::BaseResult::BaseResult(Fail)
+ : mAction(Action::Fail), mVisit(VisitBits::Neither), mSingle(nullptr)
+{}
+
+TIntermRebuild::BaseResult::BaseResult(std::vector<TIntermNode *> &&nodes)
+ : mAction(Action::ReplaceMulti),
+ mVisit(VisitBits::Neither),
+ mSingle(nullptr),
+ mMulti(std::move(nodes))
+{}
+
+void TIntermRebuild::BaseResult::moveAssignImpl(BaseResult &other)
+{
+ mAction = other.mAction;
+ mVisit = other.mVisit;
+ mSingle = other.mSingle;
+ mMulti = std::move(other.mMulti);
+}
+
+TIntermRebuild::BaseResult TIntermRebuild::BaseResult::Multi(std::vector<TIntermNode *> &&nodes)
+{
+ auto it = std::remove(nodes.begin(), nodes.end(), nullptr);
+ nodes.erase(it, nodes.end());
+ return std::move(nodes);
+}
+
+bool TIntermRebuild::BaseResult::isFail() const
+{
+ return mAction == Action::Fail;
+}
+
+bool TIntermRebuild::BaseResult::isDrop() const
+{
+ return mAction == Action::Drop;
+}
+
+TIntermNode *TIntermRebuild::BaseResult::single() const
+{
+ return mSingle;
+}
+
+const std::vector<TIntermNode *> *TIntermRebuild::BaseResult::multi() const
+{
+ if (mAction == Action::ReplaceMulti)
+ {
+ return &mMulti;
+ }
+ return nullptr;
+}
+
+////////////////////////////////////////////////////////////////////////////////
+
+using PreResult = TIntermRebuild::PreResult;
+
+PreResult::PreResult(TIntermNode &node, VisitBits visit) : BaseResult(node, visit) {}
+PreResult::PreResult(TIntermNode *node, VisitBits visit) : BaseResult(node, visit) {}
+PreResult::PreResult(std::nullptr_t) : BaseResult(nullptr) {}
+PreResult::PreResult(Fail) : BaseResult(Fail()) {}
+
+PreResult::PreResult(BaseResult &&other) : BaseResult(other) {}
+PreResult::PreResult(PreResult &&other) : BaseResult(other) {}
+
+void PreResult::operator=(PreResult &&other)
+{
+ moveAssignImpl(other);
+}
+
+////////////////////////////////////////////////////////////////////////////////
+
+using PostResult = TIntermRebuild::PostResult;
+
+PostResult::PostResult(TIntermNode &node) : BaseResult(node, VisitBits::Neither) {}
+PostResult::PostResult(TIntermNode *node) : BaseResult(node, VisitBits::Neither) {}
+PostResult::PostResult(std::nullptr_t) : BaseResult(nullptr) {}
+PostResult::PostResult(Fail) : BaseResult(Fail()) {}
+
+PostResult::PostResult(PostResult &&other) : BaseResult(other) {}
+PostResult::PostResult(BaseResult &&other) : BaseResult(other) {}
+
+void PostResult::operator=(PostResult &&other)
+{
+ moveAssignImpl(other);
+}
+
+////////////////////////////////////////////////////////////////////////////////
+
+TIntermRebuild::TIntermRebuild(TCompiler &compiler, bool preVisit, bool postVisit)
+ : mCompiler(compiler),
+ mSymbolTable(compiler.getSymbolTable()),
+ mPreVisit(preVisit),
+ mPostVisit(postVisit)
+{
+ ASSERT(preVisit || postVisit);
+}
+
+TIntermRebuild::~TIntermRebuild()
+{
+ ASSERT(!mNodeStack.value);
+ ASSERT(!mNodeStack.tail);
+}
+
+const TFunction *TIntermRebuild::getParentFunction() const
+{
+ return mParentFunc;
+}
+
+TIntermNode *TIntermRebuild::getParentNode(size_t offset) const
+{
+ ASSERT(mNodeStack.tail);
+ auto parent = *mNodeStack.tail;
+ while (offset > 0)
+ {
+ --offset;
+ ASSERT(parent.tail);
+ parent = *parent.tail;
+ }
+ return parent.value;
+}
+
+bool TIntermRebuild::rebuildRoot(TIntermBlock &root)
+{
+ if (!rebuildInPlace(root))
+ {
+ return false;
+ }
+ return mCompiler.validateAST(&root);
+}
+
+bool TIntermRebuild::rebuildInPlace(TIntermAggregate &node)
+{
+ return rebuildInPlaceImpl(node);
+}
+
+bool TIntermRebuild::rebuildInPlace(TIntermBlock &node)
+{
+ return rebuildInPlaceImpl(node);
+}
+
+bool TIntermRebuild::rebuildInPlace(TIntermDeclaration &node)
+{
+ return rebuildInPlaceImpl(node);
+}
+
+template <typename Node>
+bool TIntermRebuild::rebuildInPlaceImpl(Node &node)
+{
+ auto *newNode = traverseAnyAs<Node>(node);
+ if (!newNode)
+ {
+ return false;
+ }
+
+ if (newNode != &node)
+ {
+ *node.getSequence() = std::move(*newNode->getSequence());
+ }
+
+ return true;
+}
+
+PostResult TIntermRebuild::rebuild(TIntermNode &node)
+{
+ return traverseAny(node);
+}
+
+////////////////////////////////////////////////////////////////////////////////
+
+template <typename Node>
+Node *TIntermRebuild::traverseAnyAs(TIntermNode &node)
+{
+ PostResult result(traverseAny(node));
+ if (result.mAction == Action::Fail || !result.mSingle)
+ {
+ return nullptr;
+ }
+ return asNode<Node>(result.mSingle);
+}
+
+template <typename Node>
+bool TIntermRebuild::traverseAnyAs(TIntermNode &node, Node *&out)
+{
+ PostResult result(traverseAny(node));
+ if (result.mAction == Action::Fail || result.mAction == Action::ReplaceMulti)
+ {
+ return false;
+ }
+ if (!result.mSingle)
+ {
+ return true;
+ }
+ out = asNode<Node>(result.mSingle);
+ return out != nullptr;
+}
+
+bool TIntermRebuild::traverseAggregateBaseChildren(TIntermAggregateBase &node)
+{
+ auto *const children = node.getSequence();
+ ASSERT(children);
+ TIntermSequence newChildren;
+
+ for (TIntermNode *child : *children)
+ {
+ ASSERT(child);
+ PostResult result(traverseAny(*child));
+
+ switch (result.mAction)
+ {
+ case Action::ReplaceSingle:
+ newChildren.push_back(result.mSingle);
+ break;
+
+ case Action::ReplaceMulti:
+ for (TIntermNode *newNode : result.mMulti)
+ {
+ if (newNode)
+ {
+ newChildren.push_back(newNode);
+ }
+ }
+ break;
+
+ case Action::Drop:
+ break;
+
+ case Action::Fail:
+ return false;
+
+ default:
+ ASSERT(false);
+ return false;
+ }
+ }
+
+ *children = std::move(newChildren);
+
+ return true;
+}
+
+////////////////////////////////////////////////////////////////////////////////
+
+struct TIntermRebuild::NodeStackGuard
+{
+ ConsList<TIntermNode *> oldNodeStack;
+ ConsList<TIntermNode *> &nodeStack;
+ NodeStackGuard(ConsList<TIntermNode *> &nodeStack, TIntermNode *node)
+ : oldNodeStack(nodeStack), nodeStack(nodeStack)
+ {
+ nodeStack = {node, &oldNodeStack};
+ }
+ ~NodeStackGuard() { nodeStack = oldNodeStack; }
+};
+
+PostResult TIntermRebuild::traverseAny(TIntermNode &originalNode)
+{
+ PreResult preResult = traversePre(originalNode);
+ if (!preResult.mSingle)
+ {
+ ASSERT(preResult.mVisit == VisitBits::Neither);
+ return std::move(preResult);
+ }
+
+ TIntermNode *currNode = preResult.mSingle;
+ const VisitBits visit = preResult.mVisit;
+ const NodeType currNodeType = getNodeType(*currNode);
+
+ currNode = traverseChildren(currNodeType, originalNode, *currNode, visit);
+ if (!currNode)
+ {
+ return Fail();
+ }
+
+ return traversePost(currNodeType, originalNode, *currNode, visit);
+}
+
+PreResult TIntermRebuild::traversePre(TIntermNode &originalNode)
+{
+ if (!mPreVisit)
+ {
+ return {originalNode, VisitBits::Both};
+ }
+
+ NodeStackGuard guard(mNodeStack, &originalNode);
+
+ const NodeType originalNodeType = getNodeType(originalNode);
+
+ switch (originalNodeType)
+ {
+ case NodeType::Unknown:
+ ASSERT(false);
+ return Fail();
+ case NodeType::Symbol:
+ return visitSymbolPre(*originalNode.getAsSymbolNode());
+ case NodeType::ConstantUnion:
+ return visitConstantUnionPre(*originalNode.getAsConstantUnion());
+ case NodeType::FunctionPrototype:
+ return visitFunctionPrototypePre(*originalNode.getAsFunctionPrototypeNode());
+ case NodeType::PreprocessorDirective:
+ return visitPreprocessorDirectivePre(*originalNode.getAsPreprocessorDirective());
+ case NodeType::Unary:
+ return visitUnaryPre(*originalNode.getAsUnaryNode());
+ case NodeType::Binary:
+ return visitBinaryPre(*originalNode.getAsBinaryNode());
+ case NodeType::Ternary:
+ return visitTernaryPre(*originalNode.getAsTernaryNode());
+ case NodeType::Swizzle:
+ return visitSwizzlePre(*originalNode.getAsSwizzleNode());
+ case NodeType::IfElse:
+ return visitIfElsePre(*originalNode.getAsIfElseNode());
+ case NodeType::Switch:
+ return visitSwitchPre(*originalNode.getAsSwitchNode());
+ case NodeType::Case:
+ return visitCasePre(*originalNode.getAsCaseNode());
+ case NodeType::FunctionDefinition:
+ return visitFunctionDefinitionPre(*originalNode.getAsFunctionDefinition());
+ case NodeType::Aggregate:
+ return visitAggregatePre(*originalNode.getAsAggregate());
+ case NodeType::Block:
+ return visitBlockPre(*originalNode.getAsBlock());
+ case NodeType::GlobalQualifierDeclaration:
+ return visitGlobalQualifierDeclarationPre(
+ *originalNode.getAsGlobalQualifierDeclarationNode());
+ case NodeType::Declaration:
+ return visitDeclarationPre(*originalNode.getAsDeclarationNode());
+ case NodeType::Loop:
+ return visitLoopPre(*originalNode.getAsLoopNode());
+ case NodeType::Branch:
+ return visitBranchPre(*originalNode.getAsBranchNode());
+ default:
+ ASSERT(false);
+ return Fail();
+ }
+}
+
+TIntermNode *TIntermRebuild::traverseChildren(NodeType currNodeType,
+ const TIntermNode &originalNode,
+ TIntermNode &currNode,
+ VisitBits visit)
+{
+ if (!AnyBits(visit, VisitBits::Children))
+ {
+ return &currNode;
+ }
+
+ if (AnyBits(visit, VisitBits::ChildrenRequiresSame) && &originalNode != &currNode)
+ {
+ return &currNode;
+ }
+
+ NodeStackGuard guard(mNodeStack, &currNode);
+
+ switch (currNodeType)
+ {
+ case NodeType::Unknown:
+ ASSERT(false);
+ return nullptr;
+ case NodeType::Symbol:
+ return &currNode;
+ case NodeType::ConstantUnion:
+ return &currNode;
+ case NodeType::FunctionPrototype:
+ return &currNode;
+ case NodeType::PreprocessorDirective:
+ return &currNode;
+ case NodeType::Unary:
+ return traverseUnaryChildren(*currNode.getAsUnaryNode());
+ case NodeType::Binary:
+ return traverseBinaryChildren(*currNode.getAsBinaryNode());
+ case NodeType::Ternary:
+ return traverseTernaryChildren(*currNode.getAsTernaryNode());
+ case NodeType::Swizzle:
+ return traverseSwizzleChildren(*currNode.getAsSwizzleNode());
+ case NodeType::IfElse:
+ return traverseIfElseChildren(*currNode.getAsIfElseNode());
+ case NodeType::Switch:
+ return traverseSwitchChildren(*currNode.getAsSwitchNode());
+ case NodeType::Case:
+ return traverseCaseChildren(*currNode.getAsCaseNode());
+ case NodeType::FunctionDefinition:
+ return traverseFunctionDefinitionChildren(*currNode.getAsFunctionDefinition());
+ case NodeType::Aggregate:
+ return traverseAggregateChildren(*currNode.getAsAggregate());
+ case NodeType::Block:
+ return traverseBlockChildren(*currNode.getAsBlock());
+ case NodeType::GlobalQualifierDeclaration:
+ return traverseGlobalQualifierDeclarationChildren(
+ *currNode.getAsGlobalQualifierDeclarationNode());
+ case NodeType::Declaration:
+ return traverseDeclarationChildren(*currNode.getAsDeclarationNode());
+ case NodeType::Loop:
+ return traverseLoopChildren(*currNode.getAsLoopNode());
+ case NodeType::Branch:
+ return traverseBranchChildren(*currNode.getAsBranchNode());
+ default:
+ ASSERT(false);
+ return nullptr;
+ }
+}
+
+PostResult TIntermRebuild::traversePost(NodeType currNodeType,
+ const TIntermNode &originalNode,
+ TIntermNode &currNode,
+ VisitBits visit)
+{
+ if (!mPostVisit)
+ {
+ return currNode;
+ }
+
+ if (!AnyBits(visit, VisitBits::Post))
+ {
+ return currNode;
+ }
+
+ if (AnyBits(visit, VisitBits::PostRequiresSame) && &originalNode != &currNode)
+ {
+ return currNode;
+ }
+
+ NodeStackGuard guard(mNodeStack, &currNode);
+
+ switch (currNodeType)
+ {
+ case NodeType::Unknown:
+ ASSERT(false);
+ return Fail();
+ case NodeType::Symbol:
+ return visitSymbolPost(*currNode.getAsSymbolNode());
+ case NodeType::ConstantUnion:
+ return visitConstantUnionPost(*currNode.getAsConstantUnion());
+ case NodeType::FunctionPrototype:
+ return visitFunctionPrototypePost(*currNode.getAsFunctionPrototypeNode());
+ case NodeType::PreprocessorDirective:
+ return visitPreprocessorDirectivePost(*currNode.getAsPreprocessorDirective());
+ case NodeType::Unary:
+ return visitUnaryPost(*currNode.getAsUnaryNode());
+ case NodeType::Binary:
+ return visitBinaryPost(*currNode.getAsBinaryNode());
+ case NodeType::Ternary:
+ return visitTernaryPost(*currNode.getAsTernaryNode());
+ case NodeType::Swizzle:
+ return visitSwizzlePost(*currNode.getAsSwizzleNode());
+ case NodeType::IfElse:
+ return visitIfElsePost(*currNode.getAsIfElseNode());
+ case NodeType::Switch:
+ return visitSwitchPost(*currNode.getAsSwitchNode());
+ case NodeType::Case:
+ return visitCasePost(*currNode.getAsCaseNode());
+ case NodeType::FunctionDefinition:
+ return visitFunctionDefinitionPost(*currNode.getAsFunctionDefinition());
+ case NodeType::Aggregate:
+ return visitAggregatePost(*currNode.getAsAggregate());
+ case NodeType::Block:
+ return visitBlockPost(*currNode.getAsBlock());
+ case NodeType::GlobalQualifierDeclaration:
+ return visitGlobalQualifierDeclarationPost(
+ *currNode.getAsGlobalQualifierDeclarationNode());
+ case NodeType::Declaration:
+ return visitDeclarationPost(*currNode.getAsDeclarationNode());
+ case NodeType::Loop:
+ return visitLoopPost(*currNode.getAsLoopNode());
+ case NodeType::Branch:
+ return visitBranchPost(*currNode.getAsBranchNode());
+ default:
+ ASSERT(false);
+ return Fail();
+ }
+}
+
+////////////////////////////////////////////////////////////////////////////////
+
+TIntermNode *TIntermRebuild::traverseAggregateChildren(TIntermAggregate &node)
+{
+ if (traverseAggregateBaseChildren(node))
+ {
+ return &node;
+ }
+ return nullptr;
+}
+
+TIntermNode *TIntermRebuild::traverseBlockChildren(TIntermBlock &node)
+{
+ if (traverseAggregateBaseChildren(node))
+ {
+ return &node;
+ }
+ return nullptr;
+}
+
+TIntermNode *TIntermRebuild::traverseDeclarationChildren(TIntermDeclaration &node)
+{
+ if (traverseAggregateBaseChildren(node))
+ {
+ return &node;
+ }
+ return nullptr;
+}
+
+TIntermNode *TIntermRebuild::traverseSwizzleChildren(TIntermSwizzle &node)
+{
+ auto *const operand = node.getOperand();
+ ASSERT(operand);
+
+ auto *newOperand = traverseAnyAs<TIntermTyped>(*operand);
+ GUARD(newOperand);
+
+ if (newOperand != operand)
+ {
+ return new TIntermSwizzle(newOperand, node.getSwizzleOffsets());
+ }
+
+ return &node;
+}
+
+TIntermNode *TIntermRebuild::traverseBinaryChildren(TIntermBinary &node)
+{
+ auto *const left = node.getLeft();
+ ASSERT(left);
+ auto *const right = node.getRight();
+ ASSERT(right);
+
+ auto *const newLeft = traverseAnyAs<TIntermTyped>(*left);
+ GUARD(newLeft);
+ auto *const newRight = traverseAnyAs<TIntermTyped>(*right);
+ GUARD(newRight);
+
+ if (newLeft != left || newRight != right)
+ {
+ TOperator op = node.getOp();
+ switch (op)
+ {
+ case TOperator::EOpIndexDirectStruct:
+ {
+ if (newLeft->getType().getInterfaceBlock())
+ {
+ op = TOperator::EOpIndexDirectInterfaceBlock;
+ }
+ }
+ break;
+
+ case TOperator::EOpIndexDirectInterfaceBlock:
+ {
+ if (newLeft->getType().getStruct())
+ {
+ op = TOperator::EOpIndexDirectStruct;
+ }
+ }
+ break;
+
+ case TOperator::EOpComma:
+ return TIntermBinary::CreateComma(newLeft, newRight, mCompiler.getShaderVersion());
+
+ default:
+ break;
+ }
+
+ return new TIntermBinary(op, newLeft, newRight);
+ }
+
+ return &node;
+}
+
+TIntermNode *TIntermRebuild::traverseUnaryChildren(TIntermUnary &node)
+{
+ auto *const operand = node.getOperand();
+ ASSERT(operand);
+
+ auto *const newOperand = traverseAnyAs<TIntermTyped>(*operand);
+ GUARD(newOperand);
+
+ if (newOperand != operand)
+ {
+ return new TIntermUnary(node.getOp(), newOperand, node.getFunction());
+ }
+
+ return &node;
+}
+
+TIntermNode *TIntermRebuild::traverseTernaryChildren(TIntermTernary &node)
+{
+ auto *const cond = node.getCondition();
+ ASSERT(cond);
+ auto *const true_ = node.getTrueExpression();
+ ASSERT(true_);
+ auto *const false_ = node.getFalseExpression();
+ ASSERT(false_);
+
+ auto *const newCond = traverseAnyAs<TIntermTyped>(*cond);
+ GUARD(newCond);
+ auto *const newTrue = traverseAnyAs<TIntermTyped>(*true_);
+ GUARD(newTrue);
+ auto *const newFalse = traverseAnyAs<TIntermTyped>(*false_);
+ GUARD(newFalse);
+
+ if (newCond != cond || newTrue != true_ || newFalse != false_)
+ {
+ return new TIntermTernary(newCond, newTrue, newFalse);
+ }
+
+ return &node;
+}
+
+TIntermNode *TIntermRebuild::traverseIfElseChildren(TIntermIfElse &node)
+{
+ auto *const cond = node.getCondition();
+ ASSERT(cond);
+ auto *const true_ = node.getTrueBlock();
+ auto *const false_ = node.getFalseBlock();
+
+ auto *const newCond = traverseAnyAs<TIntermTyped>(*cond);
+ GUARD(newCond);
+ TIntermBlock *newTrue = nullptr;
+ if (true_)
+ {
+ GUARD(traverseAnyAs(*true_, newTrue));
+ }
+ TIntermBlock *newFalse = nullptr;
+ if (false_)
+ {
+ GUARD(traverseAnyAs(*false_, newFalse));
+ }
+
+ if (newCond != cond || newTrue != true_ || newFalse != false_)
+ {
+ return new TIntermIfElse(newCond, newTrue, newFalse);
+ }
+
+ return &node;
+}
+
+TIntermNode *TIntermRebuild::traverseSwitchChildren(TIntermSwitch &node)
+{
+ auto *const init = node.getInit();
+ ASSERT(init);
+ auto *const stmts = node.getStatementList();
+ ASSERT(stmts);
+
+ auto *const newInit = traverseAnyAs<TIntermTyped>(*init);
+ GUARD(newInit);
+ auto *const newStmts = traverseAnyAs<TIntermBlock>(*stmts);
+ GUARD(newStmts);
+
+ if (newInit != init || newStmts != stmts)
+ {
+ return new TIntermSwitch(newInit, newStmts);
+ }
+
+ return &node;
+}
+
+TIntermNode *TIntermRebuild::traverseCaseChildren(TIntermCase &node)
+{
+ auto *const cond = node.getCondition();
+
+ TIntermTyped *newCond = nullptr;
+ if (cond)
+ {
+ GUARD(traverseAnyAs(*cond, newCond));
+ }
+
+ if (newCond != cond)
+ {
+ return new TIntermCase(newCond);
+ }
+
+ return &node;
+}
+
+TIntermNode *TIntermRebuild::traverseFunctionDefinitionChildren(TIntermFunctionDefinition &node)
+{
+ GUARD(!mParentFunc); // Function definitions cannot be nested.
+ mParentFunc = node.getFunction();
+ struct OnExit
+ {
+ const TFunction *&parentFunc;
+ OnExit(const TFunction *&parentFunc) : parentFunc(parentFunc) {}
+ ~OnExit() { parentFunc = nullptr; }
+ } onExit(mParentFunc);
+
+ auto *const proto = node.getFunctionPrototype();
+ ASSERT(proto);
+ auto *const body = node.getBody();
+ ASSERT(body);
+
+ auto *const newProto = traverseAnyAs<TIntermFunctionPrototype>(*proto);
+ GUARD(newProto);
+ auto *const newBody = traverseAnyAs<TIntermBlock>(*body);
+ GUARD(newBody);
+
+ if (newProto != proto || newBody != body)
+ {
+ return new TIntermFunctionDefinition(newProto, newBody);
+ }
+
+ return &node;
+}
+
+TIntermNode *TIntermRebuild::traverseGlobalQualifierDeclarationChildren(
+ TIntermGlobalQualifierDeclaration &node)
+{
+ auto *const symbol = node.getSymbol();
+ ASSERT(symbol);
+
+ auto *const newSymbol = traverseAnyAs<TIntermSymbol>(*symbol);
+ GUARD(newSymbol);
+
+ if (newSymbol != symbol)
+ {
+ return new TIntermGlobalQualifierDeclaration(newSymbol, node.isPrecise(), node.getLine());
+ }
+
+ return &node;
+}
+
+TIntermNode *TIntermRebuild::traverseLoopChildren(TIntermLoop &node)
+{
+ const TLoopType loopType = node.getType();
+
+ auto *const init = node.getInit();
+ auto *const cond = node.getCondition();
+ auto *const expr = node.getExpression();
+ auto *const body = node.getBody();
+ ASSERT(body);
+
+#if defined(ANGLE_ENABLE_ASSERTS)
+ switch (loopType)
+ {
+ case TLoopType::ELoopFor:
+ break;
+ case TLoopType::ELoopWhile:
+ case TLoopType::ELoopDoWhile:
+ ASSERT(cond);
+ ASSERT(!init && !expr);
+ break;
+ default:
+ ASSERT(false);
+ break;
+ }
+#endif
+
+ auto *const newBody = traverseAnyAs<TIntermBlock>(*body);
+ GUARD(newBody);
+ TIntermNode *newInit = nullptr;
+ if (init)
+ {
+ GUARD(traverseAnyAs(*init, newInit));
+ }
+ TIntermTyped *newCond = nullptr;
+ if (cond)
+ {
+ GUARD(traverseAnyAs(*cond, newCond));
+ }
+ TIntermTyped *newExpr = nullptr;
+ if (expr)
+ {
+ GUARD(traverseAnyAs(*expr, newExpr));
+ }
+
+ if (newInit != init || newCond != cond || newExpr != expr || newBody != body)
+ {
+ switch (loopType)
+ {
+ case TLoopType::ELoopFor:
+ GUARD(newBody);
+ break;
+ case TLoopType::ELoopWhile:
+ case TLoopType::ELoopDoWhile:
+ GUARD(newCond && newBody);
+ GUARD(!newInit && !newExpr);
+ break;
+ default:
+ ASSERT(false);
+ break;
+ }
+ return new TIntermLoop(loopType, newInit, newCond, newExpr, newBody);
+ }
+
+ return &node;
+}
+
+TIntermNode *TIntermRebuild::traverseBranchChildren(TIntermBranch &node)
+{
+ auto *const expr = node.getExpression();
+
+ TIntermTyped *newExpr = nullptr;
+ if (expr)
+ {
+ GUARD(traverseAnyAs<TIntermTyped>(*expr, newExpr));
+ }
+
+ if (newExpr != expr)
+ {
+ return new TIntermBranch(node.getFlowOp(), newExpr);
+ }
+
+ return &node;
+}
+
+////////////////////////////////////////////////////////////////////////////////
+
+PreResult TIntermRebuild::visitSymbolPre(TIntermSymbol &node)
+{
+ return {node, VisitBits::Both};
+}
+
+PreResult TIntermRebuild::visitConstantUnionPre(TIntermConstantUnion &node)
+{
+ return {node, VisitBits::Both};
+}
+
+PreResult TIntermRebuild::visitFunctionPrototypePre(TIntermFunctionPrototype &node)
+{
+ return {node, VisitBits::Both};
+}
+
+PreResult TIntermRebuild::visitPreprocessorDirectivePre(TIntermPreprocessorDirective &node)
+{
+ return {node, VisitBits::Both};
+}
+
+PreResult TIntermRebuild::visitUnaryPre(TIntermUnary &node)
+{
+ return {node, VisitBits::Both};
+}
+
+PreResult TIntermRebuild::visitBinaryPre(TIntermBinary &node)
+{
+ return {node, VisitBits::Both};
+}
+
+PreResult TIntermRebuild::visitTernaryPre(TIntermTernary &node)
+{
+ return {node, VisitBits::Both};
+}
+
+PreResult TIntermRebuild::visitSwizzlePre(TIntermSwizzle &node)
+{
+ return {node, VisitBits::Both};
+}
+
+PreResult TIntermRebuild::visitIfElsePre(TIntermIfElse &node)
+{
+ return {node, VisitBits::Both};
+}
+
+PreResult TIntermRebuild::visitSwitchPre(TIntermSwitch &node)
+{
+ return {node, VisitBits::Both};
+}
+
+PreResult TIntermRebuild::visitCasePre(TIntermCase &node)
+{
+ return {node, VisitBits::Both};
+}
+
+PreResult TIntermRebuild::visitLoopPre(TIntermLoop &node)
+{
+ return {node, VisitBits::Both};
+}
+
+PreResult TIntermRebuild::visitBranchPre(TIntermBranch &node)
+{
+ return {node, VisitBits::Both};
+}
+
+PreResult TIntermRebuild::visitDeclarationPre(TIntermDeclaration &node)
+{
+ return {node, VisitBits::Both};
+}
+
+PreResult TIntermRebuild::visitBlockPre(TIntermBlock &node)
+{
+ return {node, VisitBits::Both};
+}
+
+PreResult TIntermRebuild::visitAggregatePre(TIntermAggregate &node)
+{
+ return {node, VisitBits::Both};
+}
+
+PreResult TIntermRebuild::visitFunctionDefinitionPre(TIntermFunctionDefinition &node)
+{
+ return {node, VisitBits::Both};
+}
+
+PreResult TIntermRebuild::visitGlobalQualifierDeclarationPre(
+ TIntermGlobalQualifierDeclaration &node)
+{
+ return {node, VisitBits::Both};
+}
+
+////////////////////////////////////////////////////////////////////////////////
+
+PostResult TIntermRebuild::visitSymbolPost(TIntermSymbol &node)
+{
+ return node;
+}
+
+PostResult TIntermRebuild::visitConstantUnionPost(TIntermConstantUnion &node)
+{
+ return node;
+}
+
+PostResult TIntermRebuild::visitFunctionPrototypePost(TIntermFunctionPrototype &node)
+{
+ return node;
+}
+
+PostResult TIntermRebuild::visitPreprocessorDirectivePost(TIntermPreprocessorDirective &node)
+{
+ return node;
+}
+
+PostResult TIntermRebuild::visitUnaryPost(TIntermUnary &node)
+{
+ return node;
+}
+
+PostResult TIntermRebuild::visitBinaryPost(TIntermBinary &node)
+{
+ return node;
+}
+
+PostResult TIntermRebuild::visitTernaryPost(TIntermTernary &node)
+{
+ return node;
+}
+
+PostResult TIntermRebuild::visitSwizzlePost(TIntermSwizzle &node)
+{
+ return node;
+}
+
+PostResult TIntermRebuild::visitIfElsePost(TIntermIfElse &node)
+{
+ return node;
+}
+
+PostResult TIntermRebuild::visitSwitchPost(TIntermSwitch &node)
+{
+ return node;
+}
+
+PostResult TIntermRebuild::visitCasePost(TIntermCase &node)
+{
+ return node;
+}
+
+PostResult TIntermRebuild::visitLoopPost(TIntermLoop &node)
+{
+ return node;
+}
+
+PostResult TIntermRebuild::visitBranchPost(TIntermBranch &node)
+{
+ return node;
+}
+
+PostResult TIntermRebuild::visitDeclarationPost(TIntermDeclaration &node)
+{
+ return node;
+}
+
+PostResult TIntermRebuild::visitBlockPost(TIntermBlock &node)
+{
+ return node;
+}
+
+PostResult TIntermRebuild::visitAggregatePost(TIntermAggregate &node)
+{
+ return node;
+}
+
+PostResult TIntermRebuild::visitFunctionDefinitionPost(TIntermFunctionDefinition &node)
+{
+ return node;
+}
+
+PostResult TIntermRebuild::visitGlobalQualifierDeclarationPost(
+ TIntermGlobalQualifierDeclaration &node)
+{
+ return node;
+}
+
+} // namespace sh
diff --git a/gfx/angle/checkout/src/compiler/translator/tree_util/IntermRebuild.h b/gfx/angle/checkout/src/compiler/translator/tree_util/IntermRebuild.h
new file mode 100644
index 0000000000..7907d283ef
--- /dev/null
+++ b/gfx/angle/checkout/src/compiler/translator/tree_util/IntermRebuild.h
@@ -0,0 +1,328 @@
+//
+// Copyright 2020 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.
+//
+
+#ifndef COMPILER_TRANSLATOR_TRANSLATORMETALDIRECT_INTERMREBUILD_H_
+#define COMPILER_TRANSLATOR_TRANSLATORMETALDIRECT_INTERMREBUILD_H_
+
+#include "compiler/translator/tree_util/IntermTraverse.h"
+#include "compiler/translator/tree_util/NodeType.h"
+
+namespace sh
+{
+
+// Walks the tree to rebuild nodes.
+// This class is intended to be derived with overridden visitXXX functions.
+//
+// Each visitXXX function that does not have a Visit parameter simply has the visitor called
+// exactly once, regardless of (preVisit) or (postVisit) values.
+
+// Each visitXXX function that has a Visit parameter behaves as follows:
+// * If (preVisit):
+// - The node is visited before children are traversed.
+// - The returned value is used to replace the visited node. The returned value may be the same
+// as the original node.
+// - If multiple nodes are returned, children and post visits of the returned nodes are not
+// preformed, even if it is a singleton collection.
+// * If (childVisit)
+// - If any new children are returned, the node is automatically rebuilt with the new children
+// before post visit.
+// - Depending on the type of the node, null children may be discarded.
+// - Ill-typed children cause rebuild errors. Ill-typed means the node to automatically rebuild
+// cannot accept a child of a certain type as input to its constructor.
+// - Only instances of TIntermAggregateBase can accept Multi results for any of its children.
+// If supplied, the nodes are spliced children at the spot of the original child.
+// * If (postVisit)
+// - The node is visited after any children are traversed.
+// - Only after such a rebuild (or lack thereof), the post-visit is performed.
+//
+// Nodes in visit functions are allowed to be modified in place, including TIntermAggregateBase
+// child sequences.
+//
+// The default implementations of all the visitXXX functions support full pre and post traversal
+// without modifying the visited nodes.
+//
+class TIntermRebuild : angle::NonCopyable
+{
+
+ enum class Action
+ {
+ ReplaceSingle,
+ ReplaceMulti,
+ Drop,
+ Fail,
+ };
+
+ public:
+ struct Fail
+ {};
+
+ enum VisitBits : size_t
+ {
+ // No bits are set.
+ Empty = 0u,
+
+ // Allow visit of returned node's children.
+ Children = 1u << 0u,
+
+ // Allow post visit of returned node.
+ Post = 1u << 1u,
+
+ // If (Children) bit, only visit if the returned node is the same as the original node.
+ ChildrenRequiresSame = 1u << 2u,
+
+ // If (Post) bit, only visit if the returned node is the same as the original node.
+ PostRequiresSame = 1u << 3u,
+
+ RequireSame = ChildrenRequiresSame | PostRequiresSame,
+ Neither = Empty,
+ Both = Children | Post,
+ BothWhenSame = Both | RequireSame,
+ };
+
+ private:
+ struct NodeStackGuard;
+
+ template <typename T>
+ struct ConsList
+ {
+ T value;
+ ConsList<T> *tail;
+ };
+
+ class BaseResult
+ {
+ BaseResult(const BaseResult &) = delete;
+ BaseResult &operator=(const BaseResult &) = delete;
+
+ public:
+ BaseResult(BaseResult &&other) = default;
+ BaseResult(BaseResult &other); // For subclass move constructor impls
+ BaseResult(TIntermNode &node, VisitBits visit);
+ BaseResult(TIntermNode *node, VisitBits visit);
+ BaseResult(std::nullptr_t);
+ BaseResult(Fail);
+ BaseResult(std::vector<TIntermNode *> &&nodes);
+
+ void moveAssignImpl(BaseResult &other); // For subclass move assign impls
+
+ static BaseResult Multi(std::vector<TIntermNode *> &&nodes);
+
+ template <typename Iter>
+ static BaseResult Multi(Iter nodesBegin, Iter nodesEnd)
+ {
+ std::vector<TIntermNode *> nodes;
+ for (Iter nodesCurr = nodesBegin; nodesCurr != nodesEnd; ++nodesCurr)
+ {
+ nodes.push_back(*nodesCurr);
+ }
+ return std::move(nodes);
+ }
+
+ bool isFail() const;
+ bool isDrop() const;
+ TIntermNode *single() const;
+ const std::vector<TIntermNode *> *multi() const;
+
+ public:
+ Action mAction;
+ VisitBits mVisit;
+ TIntermNode *mSingle;
+ std::vector<TIntermNode *> mMulti;
+ };
+
+ public:
+ class PreResult : private BaseResult
+ {
+ friend class TIntermRebuild;
+
+ public:
+ PreResult(PreResult &&other);
+ PreResult(TIntermNode &node, VisitBits visit = VisitBits::BothWhenSame);
+ PreResult(TIntermNode *node, VisitBits visit = VisitBits::BothWhenSame);
+ PreResult(std::nullptr_t); // Used to drop a node.
+ PreResult(Fail); // Used to signal failure.
+
+ void operator=(PreResult &&other);
+
+ static PreResult Multi(std::vector<TIntermNode *> &&nodes)
+ {
+ return BaseResult::Multi(std::move(nodes));
+ }
+
+ template <typename Iter>
+ static PreResult Multi(Iter nodesBegin, Iter nodesEnd)
+ {
+ return BaseResult::Multi(nodesBegin, nodesEnd);
+ }
+
+ using BaseResult::isDrop;
+ using BaseResult::isFail;
+ using BaseResult::multi;
+ using BaseResult::single;
+
+ private:
+ PreResult(BaseResult &&other);
+ };
+
+ class PostResult : private BaseResult
+ {
+ friend class TIntermRebuild;
+
+ public:
+ PostResult(PostResult &&other);
+ PostResult(TIntermNode &node);
+ PostResult(TIntermNode *node);
+ PostResult(std::nullptr_t); // Used to drop a node
+ PostResult(Fail); // Used to signal failure.
+
+ void operator=(PostResult &&other);
+
+ static PostResult Multi(std::vector<TIntermNode *> &&nodes)
+ {
+ return BaseResult::Multi(std::move(nodes));
+ }
+
+ template <typename Iter>
+ static PostResult Multi(Iter nodesBegin, Iter nodesEnd)
+ {
+ return BaseResult::Multi(nodesBegin, nodesEnd);
+ }
+
+ using BaseResult::isDrop;
+ using BaseResult::isFail;
+ using BaseResult::multi;
+ using BaseResult::single;
+
+ private:
+ PostResult(BaseResult &&other);
+ };
+
+ public:
+ TIntermRebuild(TCompiler &compiler, bool preVisit, bool postVisit);
+
+ virtual ~TIntermRebuild();
+
+ // Rebuilds the tree starting at the provided root. If a new node would be returned for the
+ // root, the root node's children become that of the new node instead. Returns false if failure
+ // occurred.
+ [[nodiscard]] bool rebuildRoot(TIntermBlock &root);
+
+ protected:
+ virtual PreResult visitSymbolPre(TIntermSymbol &node);
+ virtual PreResult visitConstantUnionPre(TIntermConstantUnion &node);
+ virtual PreResult visitFunctionPrototypePre(TIntermFunctionPrototype &node);
+ virtual PreResult visitPreprocessorDirectivePre(TIntermPreprocessorDirective &node);
+ virtual PreResult visitUnaryPre(TIntermUnary &node);
+ virtual PreResult visitBinaryPre(TIntermBinary &node);
+ virtual PreResult visitTernaryPre(TIntermTernary &node);
+ virtual PreResult visitSwizzlePre(TIntermSwizzle &node);
+ virtual PreResult visitIfElsePre(TIntermIfElse &node);
+ virtual PreResult visitSwitchPre(TIntermSwitch &node);
+ virtual PreResult visitCasePre(TIntermCase &node);
+ virtual PreResult visitLoopPre(TIntermLoop &node);
+ virtual PreResult visitBranchPre(TIntermBranch &node);
+ virtual PreResult visitDeclarationPre(TIntermDeclaration &node);
+ virtual PreResult visitBlockPre(TIntermBlock &node);
+ virtual PreResult visitAggregatePre(TIntermAggregate &node);
+ virtual PreResult visitFunctionDefinitionPre(TIntermFunctionDefinition &node);
+ virtual PreResult visitGlobalQualifierDeclarationPre(TIntermGlobalQualifierDeclaration &node);
+
+ virtual PostResult visitSymbolPost(TIntermSymbol &node);
+ virtual PostResult visitConstantUnionPost(TIntermConstantUnion &node);
+ virtual PostResult visitFunctionPrototypePost(TIntermFunctionPrototype &node);
+ virtual PostResult visitPreprocessorDirectivePost(TIntermPreprocessorDirective &node);
+ virtual PostResult visitUnaryPost(TIntermUnary &node);
+ virtual PostResult visitBinaryPost(TIntermBinary &node);
+ virtual PostResult visitTernaryPost(TIntermTernary &node);
+ virtual PostResult visitSwizzlePost(TIntermSwizzle &node);
+ virtual PostResult visitIfElsePost(TIntermIfElse &node);
+ virtual PostResult visitSwitchPost(TIntermSwitch &node);
+ virtual PostResult visitCasePost(TIntermCase &node);
+ virtual PostResult visitLoopPost(TIntermLoop &node);
+ virtual PostResult visitBranchPost(TIntermBranch &node);
+ virtual PostResult visitDeclarationPost(TIntermDeclaration &node);
+ virtual PostResult visitBlockPost(TIntermBlock &node);
+ virtual PostResult visitAggregatePost(TIntermAggregate &node);
+ virtual PostResult visitFunctionDefinitionPost(TIntermFunctionDefinition &node);
+ virtual PostResult visitGlobalQualifierDeclarationPost(TIntermGlobalQualifierDeclaration &node);
+
+ // Can be used to rebuild a specific node during a traversal. Useful for fine control of
+ // rebuilding a node's children.
+ [[nodiscard]] PostResult rebuild(TIntermNode &node);
+
+ // Rebuilds the provided node in place. If a new node would be returned, the old node's children
+ // become that of the new node instead. Returns false if failure occurred.
+ [[nodiscard]] bool rebuildInPlace(TIntermAggregate &node);
+
+ // Rebuilds the provided node in place. If a new node would be returned, the old node's children
+ // become that of the new node instead. Returns false if failure occurred.
+ [[nodiscard]] bool rebuildInPlace(TIntermBlock &node);
+
+ // Rebuilds the provided node in place. If a new node would be returned, the old node's children
+ // become that of the new node instead. Returns false if failure occurred.
+ [[nodiscard]] bool rebuildInPlace(TIntermDeclaration &node);
+
+ // If currently at or below a function declaration body, this returns the function that encloses
+ // the currently visited node. (This returns null if at a function declaration node.)
+ const TFunction *getParentFunction() const;
+
+ TIntermNode *getParentNode(size_t offset = 0) const;
+
+ private:
+ template <typename Node>
+ [[nodiscard]] bool rebuildInPlaceImpl(Node &node);
+
+ PostResult traverseAny(TIntermNode &node);
+
+ template <typename Node>
+ Node *traverseAnyAs(TIntermNode &node);
+
+ template <typename Node>
+ bool traverseAnyAs(TIntermNode &node, Node *&out);
+
+ PreResult traversePre(TIntermNode &originalNode);
+ TIntermNode *traverseChildren(NodeType currNodeType,
+ const TIntermNode &originalNode,
+ TIntermNode &currNode,
+ VisitBits visit);
+ PostResult traversePost(NodeType nodeType,
+ const TIntermNode &originalNode,
+ TIntermNode &currNode,
+ VisitBits visit);
+
+ bool traverseAggregateBaseChildren(TIntermAggregateBase &node);
+
+ TIntermNode *traverseUnaryChildren(TIntermUnary &node);
+ TIntermNode *traverseBinaryChildren(TIntermBinary &node);
+ TIntermNode *traverseTernaryChildren(TIntermTernary &node);
+ TIntermNode *traverseSwizzleChildren(TIntermSwizzle &node);
+ TIntermNode *traverseIfElseChildren(TIntermIfElse &node);
+ TIntermNode *traverseSwitchChildren(TIntermSwitch &node);
+ TIntermNode *traverseCaseChildren(TIntermCase &node);
+ TIntermNode *traverseLoopChildren(TIntermLoop &node);
+ TIntermNode *traverseBranchChildren(TIntermBranch &node);
+ TIntermNode *traverseDeclarationChildren(TIntermDeclaration &node);
+ TIntermNode *traverseBlockChildren(TIntermBlock &node);
+ TIntermNode *traverseAggregateChildren(TIntermAggregate &node);
+ TIntermNode *traverseFunctionDefinitionChildren(TIntermFunctionDefinition &node);
+ TIntermNode *traverseGlobalQualifierDeclarationChildren(
+ TIntermGlobalQualifierDeclaration &node);
+
+ protected:
+ TCompiler &mCompiler;
+ TSymbolTable &mSymbolTable;
+ const TFunction *mParentFunc = nullptr;
+ GetNodeType getNodeType;
+
+ private:
+ ConsList<TIntermNode *> mNodeStack{nullptr, nullptr};
+ bool mPreVisit;
+ bool mPostVisit;
+};
+
+} // namespace sh
+
+#endif // COMPILER_TRANSLATOR_TRANSLATORMETALDIRECT_INTERMREBUILD_H_
diff --git a/gfx/angle/checkout/src/compiler/translator/tree_util/IntermTraverse.cpp b/gfx/angle/checkout/src/compiler/translator/tree_util/IntermTraverse.cpp
new file mode 100644
index 0000000000..c4bbe1fa4d
--- /dev/null
+++ b/gfx/angle/checkout/src/compiler/translator/tree_util/IntermTraverse.cpp
@@ -0,0 +1,708 @@
+//
+// Copyright 2002 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.
+//
+
+#include "compiler/translator/tree_util/IntermTraverse.h"
+
+#include "compiler/translator/Compiler.h"
+#include "compiler/translator/InfoSink.h"
+#include "compiler/translator/SymbolTable.h"
+#include "compiler/translator/tree_util/IntermNode_util.h"
+#include "compiler/translator/util.h"
+
+namespace sh
+{
+
+// Traverse the intermediate representation tree, and call a node type specific visit function for
+// each node. Traversal is done recursively through the node member function traverse(). Nodes with
+// children can have their whole subtree skipped if preVisit is turned on and the type specific
+// function returns false.
+template <typename T>
+void TIntermTraverser::traverse(T *node)
+{
+ ScopedNodeInTraversalPath addToPath(this, node);
+ if (!addToPath.isWithinDepthLimit())
+ return;
+
+ bool visit = true;
+
+ // Visit the node before children if pre-visiting.
+ if (preVisit)
+ visit = node->visit(PreVisit, this);
+
+ if (visit)
+ {
+ size_t childIndex = 0;
+ size_t childCount = node->getChildCount();
+
+ while (childIndex < childCount && visit)
+ {
+ mCurrentChildIndex = childIndex;
+ node->getChildNode(childIndex)->traverse(this);
+ mCurrentChildIndex = childIndex;
+
+ if (inVisit && childIndex != childCount - 1)
+ {
+ visit = node->visit(InVisit, this);
+ }
+ ++childIndex;
+ }
+
+ if (visit && postVisit)
+ node->visit(PostVisit, this);
+ }
+}
+
+// Instantiate template for RewriteAtomicFunctionExpressions, in case this gets inlined thus not
+// exported from the TU.
+template void TIntermTraverser::traverse(TIntermNode *);
+
+void TIntermNode::traverse(TIntermTraverser *it)
+{
+ it->traverse(this);
+}
+
+void TIntermSymbol::traverse(TIntermTraverser *it)
+{
+ TIntermTraverser::ScopedNodeInTraversalPath addToPath(it, this);
+ it->visitSymbol(this);
+}
+
+void TIntermConstantUnion::traverse(TIntermTraverser *it)
+{
+ TIntermTraverser::ScopedNodeInTraversalPath addToPath(it, this);
+ it->visitConstantUnion(this);
+}
+
+void TIntermFunctionPrototype::traverse(TIntermTraverser *it)
+{
+ TIntermTraverser::ScopedNodeInTraversalPath addToPath(it, this);
+ it->visitFunctionPrototype(this);
+}
+
+void TIntermBinary::traverse(TIntermTraverser *it)
+{
+ it->traverseBinary(this);
+}
+
+void TIntermUnary::traverse(TIntermTraverser *it)
+{
+ it->traverseUnary(this);
+}
+
+void TIntermFunctionDefinition::traverse(TIntermTraverser *it)
+{
+ it->traverseFunctionDefinition(this);
+}
+
+void TIntermBlock::traverse(TIntermTraverser *it)
+{
+ it->traverseBlock(this);
+}
+
+void TIntermAggregate::traverse(TIntermTraverser *it)
+{
+ it->traverseAggregate(this);
+}
+
+void TIntermLoop::traverse(TIntermTraverser *it)
+{
+ it->traverseLoop(this);
+}
+
+void TIntermPreprocessorDirective::traverse(TIntermTraverser *it)
+{
+ it->visitPreprocessorDirective(this);
+}
+
+bool TIntermSymbol::visit(Visit visit, TIntermTraverser *it)
+{
+ it->visitSymbol(this);
+ return false;
+}
+
+bool TIntermConstantUnion::visit(Visit visit, TIntermTraverser *it)
+{
+ it->visitConstantUnion(this);
+ return false;
+}
+
+bool TIntermFunctionPrototype::visit(Visit visit, TIntermTraverser *it)
+{
+ it->visitFunctionPrototype(this);
+ return false;
+}
+
+bool TIntermFunctionDefinition::visit(Visit visit, TIntermTraverser *it)
+{
+ return it->visitFunctionDefinition(visit, this);
+}
+
+bool TIntermUnary::visit(Visit visit, TIntermTraverser *it)
+{
+ return it->visitUnary(visit, this);
+}
+
+bool TIntermSwizzle::visit(Visit visit, TIntermTraverser *it)
+{
+ return it->visitSwizzle(visit, this);
+}
+
+bool TIntermBinary::visit(Visit visit, TIntermTraverser *it)
+{
+ return it->visitBinary(visit, this);
+}
+
+bool TIntermTernary::visit(Visit visit, TIntermTraverser *it)
+{
+ return it->visitTernary(visit, this);
+}
+
+bool TIntermAggregate::visit(Visit visit, TIntermTraverser *it)
+{
+ return it->visitAggregate(visit, this);
+}
+
+bool TIntermDeclaration::visit(Visit visit, TIntermTraverser *it)
+{
+ return it->visitDeclaration(visit, this);
+}
+
+bool TIntermGlobalQualifierDeclaration::visit(Visit visit, TIntermTraverser *it)
+{
+ return it->visitGlobalQualifierDeclaration(visit, this);
+}
+
+bool TIntermBlock::visit(Visit visit, TIntermTraverser *it)
+{
+ return it->visitBlock(visit, this);
+}
+
+bool TIntermIfElse::visit(Visit visit, TIntermTraverser *it)
+{
+ return it->visitIfElse(visit, this);
+}
+
+bool TIntermLoop::visit(Visit visit, TIntermTraverser *it)
+{
+ return it->visitLoop(visit, this);
+}
+
+bool TIntermBranch::visit(Visit visit, TIntermTraverser *it)
+{
+ return it->visitBranch(visit, this);
+}
+
+bool TIntermSwitch::visit(Visit visit, TIntermTraverser *it)
+{
+ return it->visitSwitch(visit, this);
+}
+
+bool TIntermCase::visit(Visit visit, TIntermTraverser *it)
+{
+ return it->visitCase(visit, this);
+}
+
+bool TIntermPreprocessorDirective::visit(Visit visit, TIntermTraverser *it)
+{
+ it->visitPreprocessorDirective(this);
+ return false;
+}
+
+TIntermTraverser::TIntermTraverser(bool preVisit,
+ bool inVisit,
+ bool postVisit,
+ TSymbolTable *symbolTable)
+ : preVisit(preVisit),
+ inVisit(inVisit),
+ postVisit(postVisit),
+ mMaxDepth(0),
+ mMaxAllowedDepth(std::numeric_limits<int>::max()),
+ mInGlobalScope(true),
+ mSymbolTable(symbolTable),
+ mCurrentChildIndex(0)
+{
+ // Only enabling inVisit is not supported.
+ ASSERT(!(inVisit && !preVisit && !postVisit));
+}
+
+TIntermTraverser::~TIntermTraverser() {}
+
+void TIntermTraverser::setMaxAllowedDepth(int depth)
+{
+ mMaxAllowedDepth = depth;
+}
+
+const TIntermBlock *TIntermTraverser::getParentBlock() const
+{
+ if (!mParentBlockStack.empty())
+ {
+ return mParentBlockStack.back().node;
+ }
+ return nullptr;
+}
+
+void TIntermTraverser::pushParentBlock(TIntermBlock *node)
+{
+ mParentBlockStack.push_back(ParentBlock(node, 0));
+}
+
+void TIntermTraverser::incrementParentBlockPos()
+{
+ ++mParentBlockStack.back().pos;
+}
+
+void TIntermTraverser::popParentBlock()
+{
+ ASSERT(!mParentBlockStack.empty());
+ mParentBlockStack.pop_back();
+}
+
+void TIntermTraverser::insertStatementsInParentBlock(const TIntermSequence &insertions)
+{
+ TIntermSequence emptyInsertionsAfter;
+ insertStatementsInParentBlock(insertions, emptyInsertionsAfter);
+}
+
+void TIntermTraverser::insertStatementsInParentBlock(const TIntermSequence &insertionsBefore,
+ const TIntermSequence &insertionsAfter)
+{
+ ASSERT(!mParentBlockStack.empty());
+ ParentBlock &parentBlock = mParentBlockStack.back();
+ if (mPath.back() == parentBlock.node)
+ {
+ ASSERT(mParentBlockStack.size() >= 2u);
+ // The current node is a block node, so the parent block is not the topmost one in the block
+ // stack, but the one below that.
+ parentBlock = mParentBlockStack.at(mParentBlockStack.size() - 2u);
+ }
+ NodeInsertMultipleEntry insert(parentBlock.node, parentBlock.pos, insertionsBefore,
+ insertionsAfter);
+ mInsertions.push_back(insert);
+}
+
+void TIntermTraverser::insertStatementInParentBlock(TIntermNode *statement)
+{
+ TIntermSequence insertions;
+ insertions.push_back(statement);
+ insertStatementsInParentBlock(insertions);
+}
+
+void TIntermTraverser::insertStatementsInBlockAtPosition(TIntermBlock *parent,
+ size_t position,
+ const TIntermSequence &insertionsBefore,
+ const TIntermSequence &insertionsAfter)
+{
+ ASSERT(parent);
+ ASSERT(position >= 0);
+ ASSERT(position < parent->getChildCount());
+
+ mInsertions.emplace_back(parent, position, insertionsBefore, insertionsAfter);
+}
+
+void TLValueTrackingTraverser::setInFunctionCallOutParameter(bool inOutParameter)
+{
+ mInFunctionCallOutParameter = inOutParameter;
+}
+
+bool TLValueTrackingTraverser::isInFunctionCallOutParameter() const
+{
+ return mInFunctionCallOutParameter;
+}
+
+void TIntermTraverser::traverseBinary(TIntermBinary *node)
+{
+ traverse(node);
+}
+
+void TLValueTrackingTraverser::traverseBinary(TIntermBinary *node)
+{
+ ScopedNodeInTraversalPath addToPath(this, node);
+ if (!addToPath.isWithinDepthLimit())
+ return;
+
+ bool visit = true;
+
+ // visit the node before children if pre-visiting.
+ if (preVisit)
+ visit = node->visit(PreVisit, this);
+
+ // Visit the children, in the right order.
+ if (visit)
+ {
+ if (node->isAssignment())
+ {
+ ASSERT(!isLValueRequiredHere());
+ setOperatorRequiresLValue(true);
+ }
+
+ node->getLeft()->traverse(this);
+
+ if (node->isAssignment())
+ setOperatorRequiresLValue(false);
+
+ if (inVisit)
+ visit = node->visit(InVisit, this);
+
+ if (visit)
+ {
+ // Some binary operations like indexing can be inside an expression which must be an
+ // l-value.
+ bool parentOperatorRequiresLValue = operatorRequiresLValue();
+ bool parentInFunctionCallOutParameter = isInFunctionCallOutParameter();
+
+ // Index is not required to be an l-value even when the surrounding expression is
+ // required to be an l-value.
+ TOperator op = node->getOp();
+ if (op == EOpIndexDirect || op == EOpIndexDirectInterfaceBlock ||
+ op == EOpIndexDirectStruct || op == EOpIndexIndirect)
+ {
+ setOperatorRequiresLValue(false);
+ setInFunctionCallOutParameter(false);
+ }
+
+ node->getRight()->traverse(this);
+
+ setOperatorRequiresLValue(parentOperatorRequiresLValue);
+ setInFunctionCallOutParameter(parentInFunctionCallOutParameter);
+
+ // Visit the node after the children, if requested and the traversal
+ // hasn't been cancelled yet.
+ if (postVisit)
+ visit = node->visit(PostVisit, this);
+ }
+ }
+}
+
+void TIntermTraverser::traverseUnary(TIntermUnary *node)
+{
+ traverse(node);
+}
+
+void TLValueTrackingTraverser::traverseUnary(TIntermUnary *node)
+{
+ ScopedNodeInTraversalPath addToPath(this, node);
+ if (!addToPath.isWithinDepthLimit())
+ return;
+
+ bool visit = true;
+
+ if (preVisit)
+ visit = node->visit(PreVisit, this);
+
+ if (visit)
+ {
+ ASSERT(!operatorRequiresLValue());
+ switch (node->getOp())
+ {
+ case EOpPostIncrement:
+ case EOpPostDecrement:
+ case EOpPreIncrement:
+ case EOpPreDecrement:
+ setOperatorRequiresLValue(true);
+ break;
+ default:
+ break;
+ }
+
+ node->getOperand()->traverse(this);
+
+ setOperatorRequiresLValue(false);
+
+ if (postVisit)
+ visit = node->visit(PostVisit, this);
+ }
+}
+
+// Traverse a function definition node. This keeps track of global scope.
+void TIntermTraverser::traverseFunctionDefinition(TIntermFunctionDefinition *node)
+{
+ ScopedNodeInTraversalPath addToPath(this, node);
+ if (!addToPath.isWithinDepthLimit())
+ return;
+
+ bool visit = true;
+
+ if (preVisit)
+ visit = node->visit(PreVisit, this);
+
+ if (visit)
+ {
+ mCurrentChildIndex = 0;
+ node->getFunctionPrototype()->traverse(this);
+ mCurrentChildIndex = 0;
+
+ if (inVisit)
+ visit = node->visit(InVisit, this);
+ if (visit)
+ {
+ mInGlobalScope = false;
+ mCurrentChildIndex = 1;
+ node->getBody()->traverse(this);
+ mCurrentChildIndex = 1;
+ mInGlobalScope = true;
+ if (postVisit)
+ visit = node->visit(PostVisit, this);
+ }
+ }
+}
+
+// Traverse a block node. This keeps track of the position of traversed child nodes within the block
+// so that nodes may be inserted before or after them.
+void TIntermTraverser::traverseBlock(TIntermBlock *node)
+{
+ ScopedNodeInTraversalPath addToPath(this, node);
+ if (!addToPath.isWithinDepthLimit())
+ return;
+
+ pushParentBlock(node);
+
+ bool visit = true;
+
+ TIntermSequence *sequence = node->getSequence();
+
+ if (preVisit)
+ visit = node->visit(PreVisit, this);
+
+ if (visit)
+ {
+ for (size_t childIndex = 0; childIndex < sequence->size(); ++childIndex)
+ {
+ TIntermNode *child = (*sequence)[childIndex];
+ if (visit)
+ {
+ mCurrentChildIndex = childIndex;
+ child->traverse(this);
+ mCurrentChildIndex = childIndex;
+
+ if (inVisit)
+ {
+ if (child != sequence->back())
+ visit = node->visit(InVisit, this);
+ }
+
+ incrementParentBlockPos();
+ }
+ }
+
+ if (visit && postVisit)
+ visit = node->visit(PostVisit, this);
+ }
+
+ popParentBlock();
+}
+
+void TIntermTraverser::traverseAggregate(TIntermAggregate *node)
+{
+ traverse(node);
+}
+
+bool TIntermTraverser::CompareInsertion(const NodeInsertMultipleEntry &a,
+ const NodeInsertMultipleEntry &b)
+{
+ if (a.parent != b.parent)
+ {
+ return a.parent < b.parent;
+ }
+ return a.position < b.position;
+}
+
+bool TIntermTraverser::updateTree(TCompiler *compiler, TIntermNode *node)
+{
+ // Sort the insertions so that insertion position is increasing and same position insertions are
+ // not reordered. The insertions are processed in reverse order so that multiple insertions to
+ // the same parent node are handled correctly.
+ std::stable_sort(mInsertions.begin(), mInsertions.end(), CompareInsertion);
+ for (size_t ii = 0; ii < mInsertions.size(); ++ii)
+ {
+ // If two insertions are to the same position, insert them in the order they were specified.
+ // The std::stable_sort call above will automatically guarantee this.
+ const NodeInsertMultipleEntry &insertion = mInsertions[mInsertions.size() - ii - 1];
+ ASSERT(insertion.parent);
+ if (!insertion.insertionsAfter.empty())
+ {
+ bool inserted = insertion.parent->insertChildNodes(insertion.position + 1,
+ insertion.insertionsAfter);
+ ASSERT(inserted);
+ }
+ if (!insertion.insertionsBefore.empty())
+ {
+ bool inserted =
+ insertion.parent->insertChildNodes(insertion.position, insertion.insertionsBefore);
+ ASSERT(inserted);
+ }
+ }
+ for (size_t ii = 0; ii < mReplacements.size(); ++ii)
+ {
+ const NodeUpdateEntry &replacement = mReplacements[ii];
+ ASSERT(replacement.parent);
+ bool replaced =
+ replacement.parent->replaceChildNode(replacement.original, replacement.replacement);
+ ASSERT(replaced);
+
+ // Make sure the precision is not accidentally dropped. It's ok if the precision is not the
+ // same, as the transformations are allowed to replace an expression with one that is
+ // temporarily evaluated at a different (likely higher) precision.
+ TIntermTyped *originalAsTyped = replacement.original->getAsTyped();
+ TIntermTyped *replacementAsTyped =
+ replacement.replacement ? replacement.replacement->getAsTyped() : nullptr;
+ if (originalAsTyped != nullptr && replacementAsTyped != nullptr)
+ {
+ const TType &originalType = originalAsTyped->getType();
+ const TType &replacementType = replacementAsTyped->getType();
+ ASSERT(!IsPrecisionApplicableToType(originalType.getBasicType()) ||
+ !IsPrecisionApplicableToType(replacementType.getBasicType()) ||
+ originalType.getPrecision() == EbpUndefined ||
+ replacementType.getPrecision() != EbpUndefined);
+ }
+
+ if (!replacement.originalBecomesChildOfReplacement)
+ {
+ // In AST traversing, a parent is visited before its children.
+ // After we replace a node, if its immediate child is to
+ // be replaced, we need to make sure we don't update the replaced
+ // node; instead, we update the replacement node.
+ for (size_t jj = ii + 1; jj < mReplacements.size(); ++jj)
+ {
+ NodeUpdateEntry &replacement2 = mReplacements[jj];
+ if (replacement2.parent == replacement.original)
+ replacement2.parent = replacement.replacement;
+ }
+ }
+ }
+ for (size_t ii = 0; ii < mMultiReplacements.size(); ++ii)
+ {
+ const NodeReplaceWithMultipleEntry &replacement = mMultiReplacements[ii];
+ ASSERT(replacement.parent);
+ bool replaced = replacement.parent->replaceChildNodeWithMultiple(replacement.original,
+ replacement.replacements);
+ ASSERT(replaced);
+ }
+
+ clearReplacementQueue();
+
+ return compiler->validateAST(node);
+}
+
+void TIntermTraverser::clearReplacementQueue()
+{
+ mReplacements.clear();
+ mMultiReplacements.clear();
+ mInsertions.clear();
+}
+
+void TIntermTraverser::queueReplacement(TIntermNode *replacement, OriginalNode originalStatus)
+{
+ queueReplacementWithParent(getParentNode(), mPath.back(), replacement, originalStatus);
+}
+
+void TIntermTraverser::queueReplacementWithParent(TIntermNode *parent,
+ TIntermNode *original,
+ TIntermNode *replacement,
+ OriginalNode originalStatus)
+{
+ bool originalBecomesChild = (originalStatus == OriginalNode::BECOMES_CHILD);
+ mReplacements.push_back(NodeUpdateEntry(parent, original, replacement, originalBecomesChild));
+}
+
+void TIntermTraverser::queueAccessChainReplacement(TIntermTyped *replacement)
+{
+ uint32_t ancestorIndex = 0;
+ TIntermTyped *toReplace = nullptr;
+ while (true)
+ {
+ TIntermNode *ancestor = getAncestorNode(ancestorIndex);
+ ASSERT(ancestor != nullptr);
+
+ TIntermBinary *asBinary = ancestor->getAsBinaryNode();
+ if (asBinary == nullptr ||
+ (asBinary->getOp() != EOpIndexDirect && asBinary->getOp() != EOpIndexIndirect))
+ {
+ break;
+ }
+
+ replacement = new TIntermBinary(asBinary->getOp(), replacement, asBinary->getRight());
+ toReplace = asBinary;
+
+ ++ancestorIndex;
+ }
+
+ if (toReplace == nullptr)
+ {
+ queueReplacement(replacement, OriginalNode::IS_DROPPED);
+ }
+ else
+ {
+ queueReplacementWithParent(getAncestorNode(ancestorIndex), toReplace, replacement,
+ OriginalNode::IS_DROPPED);
+ }
+}
+
+TLValueTrackingTraverser::TLValueTrackingTraverser(bool preVisitIn,
+ bool inVisitIn,
+ bool postVisitIn,
+ TSymbolTable *symbolTable)
+ : TIntermTraverser(preVisitIn, inVisitIn, postVisitIn, symbolTable),
+ mOperatorRequiresLValue(false),
+ mInFunctionCallOutParameter(false)
+{
+ ASSERT(symbolTable);
+}
+
+void TLValueTrackingTraverser::traverseAggregate(TIntermAggregate *node)
+{
+ ScopedNodeInTraversalPath addToPath(this, node);
+ if (!addToPath.isWithinDepthLimit())
+ return;
+
+ bool visit = true;
+
+ TIntermSequence *sequence = node->getSequence();
+
+ if (preVisit)
+ visit = node->visit(PreVisit, this);
+
+ if (visit)
+ {
+ size_t paramIndex = 0u;
+ for (auto *child : *sequence)
+ {
+ if (visit)
+ {
+ if (node->getFunction())
+ {
+ // Both built-ins and user defined functions should have the function symbol
+ // set.
+ ASSERT(paramIndex < node->getFunction()->getParamCount());
+ TQualifier qualifier =
+ node->getFunction()->getParam(paramIndex)->getType().getQualifier();
+ setInFunctionCallOutParameter(qualifier == EvqParamOut ||
+ qualifier == EvqParamInOut);
+ ++paramIndex;
+ }
+ else
+ {
+ ASSERT(node->isConstructor());
+ }
+ child->traverse(this);
+ if (inVisit)
+ {
+ if (child != sequence->back())
+ visit = node->visit(InVisit, this);
+ }
+ }
+ }
+ setInFunctionCallOutParameter(false);
+
+ if (visit && postVisit)
+ visit = node->visit(PostVisit, this);
+ }
+}
+
+void TIntermTraverser::traverseLoop(TIntermLoop *node)
+{
+ traverse(node);
+}
+} // namespace sh
diff --git a/gfx/angle/checkout/src/compiler/translator/tree_util/IntermTraverse.h b/gfx/angle/checkout/src/compiler/translator/tree_util/IntermTraverse.h
new file mode 100644
index 0000000000..3a48556a1f
--- /dev/null
+++ b/gfx/angle/checkout/src/compiler/translator/tree_util/IntermTraverse.h
@@ -0,0 +1,379 @@
+//
+// Copyright 2017 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.
+//
+// IntermTraverse.h : base classes for AST traversers that walk the AST and
+// also have the ability to transform it by replacing nodes.
+
+#ifndef COMPILER_TRANSLATOR_TREEUTIL_INTERMTRAVERSE_H_
+#define COMPILER_TRANSLATOR_TREEUTIL_INTERMTRAVERSE_H_
+
+#include "compiler/translator/IntermNode.h"
+#include "compiler/translator/tree_util/Visit.h"
+
+namespace sh
+{
+
+class TCompiler;
+class TSymbolTable;
+class TSymbolUniqueId;
+
+// For traversing the tree. User should derive from this class overriding the visit functions,
+// and then pass an object of the subclass to a traverse method of a node.
+//
+// The traverse*() functions may also be overridden to do other bookkeeping on the tree to provide
+// contextual information to the visit functions, such as whether the node is the target of an
+// assignment. This is complex to maintain and so should only be done in special cases.
+//
+// When using this, just fill in the methods for nodes you want visited.
+// Return false from a pre-visit to skip visiting that node's subtree.
+//
+// See also how to write AST transformations documentation:
+// https://github.com/google/angle/blob/master/doc/WritingShaderASTTransformations.md
+class TIntermTraverser : angle::NonCopyable
+{
+ public:
+ POOL_ALLOCATOR_NEW_DELETE
+ TIntermTraverser(bool preVisitIn,
+ bool inVisitIn,
+ bool postVisitIn,
+ TSymbolTable *symbolTable = nullptr);
+ virtual ~TIntermTraverser();
+
+ virtual void visitSymbol(TIntermSymbol *node) {}
+ virtual void visitConstantUnion(TIntermConstantUnion *node) {}
+ virtual bool visitSwizzle(Visit visit, TIntermSwizzle *node) { return true; }
+ virtual bool visitBinary(Visit visit, TIntermBinary *node) { return true; }
+ virtual bool visitUnary(Visit visit, TIntermUnary *node) { return true; }
+ virtual bool visitTernary(Visit visit, TIntermTernary *node) { return true; }
+ virtual bool visitIfElse(Visit visit, TIntermIfElse *node) { return true; }
+ virtual bool visitSwitch(Visit visit, TIntermSwitch *node) { return true; }
+ virtual bool visitCase(Visit visit, TIntermCase *node) { return true; }
+ virtual void visitFunctionPrototype(TIntermFunctionPrototype *node) {}
+ virtual bool visitFunctionDefinition(Visit visit, TIntermFunctionDefinition *node)
+ {
+ return true;
+ }
+ virtual bool visitAggregate(Visit visit, TIntermAggregate *node) { return true; }
+ virtual bool visitBlock(Visit visit, TIntermBlock *node) { return true; }
+ virtual bool visitGlobalQualifierDeclaration(Visit visit,
+ TIntermGlobalQualifierDeclaration *node)
+ {
+ return true;
+ }
+ virtual bool visitDeclaration(Visit visit, TIntermDeclaration *node) { return true; }
+ virtual bool visitLoop(Visit visit, TIntermLoop *node) { return true; }
+ virtual bool visitBranch(Visit visit, TIntermBranch *node) { return true; }
+ virtual void visitPreprocessorDirective(TIntermPreprocessorDirective *node) {}
+
+ // The traverse functions contain logic for iterating over the children of the node
+ // and calling the visit functions in the appropriate places. They also track some
+ // context that may be used by the visit functions.
+
+ // The generic traverse() function is used for nodes that don't need special handling.
+ // It's templated in order to avoid virtual function calls, this gains around 2% compiler
+ // performance.
+ template <typename T>
+ void traverse(T *node);
+
+ // Specialized traverse functions are implemented for node types where traversal logic may need
+ // to be overridden or where some special bookkeeping needs to be done.
+ virtual void traverseBinary(TIntermBinary *node);
+ virtual void traverseUnary(TIntermUnary *node);
+ virtual void traverseFunctionDefinition(TIntermFunctionDefinition *node);
+ virtual void traverseAggregate(TIntermAggregate *node);
+ virtual void traverseBlock(TIntermBlock *node);
+ virtual void traverseLoop(TIntermLoop *node);
+
+ int getMaxDepth() const { return mMaxDepth; }
+
+ // If traversers need to replace nodes, they can add the replacements in
+ // mReplacements/mMultiReplacements during traversal and the user of the traverser should call
+ // this function after traversal to perform them.
+ //
+ // Compiler is used to validate the tree. Node is the same given to traverse(). Returns false
+ // if the tree is invalid after update.
+ [[nodiscard]] bool updateTree(TCompiler *compiler, TIntermNode *node);
+
+ protected:
+ void setMaxAllowedDepth(int depth);
+
+ // Should only be called from traverse*() functions
+ bool incrementDepth(TIntermNode *current)
+ {
+ mMaxDepth = std::max(mMaxDepth, static_cast<int>(mPath.size()));
+ mPath.push_back(current);
+ return mMaxDepth < mMaxAllowedDepth;
+ }
+
+ // Should only be called from traverse*() functions
+ void decrementDepth() { mPath.pop_back(); }
+
+ int getCurrentTraversalDepth() const { return static_cast<int>(mPath.size()) - 1; }
+ int getCurrentBlockDepth() const { return static_cast<int>(mParentBlockStack.size()) - 1; }
+
+ // RAII helper for incrementDepth/decrementDepth
+ class [[nodiscard]] ScopedNodeInTraversalPath
+ {
+ public:
+ ScopedNodeInTraversalPath(TIntermTraverser *traverser, TIntermNode *current)
+ : mTraverser(traverser)
+ {
+ mWithinDepthLimit = mTraverser->incrementDepth(current);
+ }
+ ~ScopedNodeInTraversalPath() { mTraverser->decrementDepth(); }
+
+ bool isWithinDepthLimit() { return mWithinDepthLimit; }
+
+ private:
+ TIntermTraverser *mTraverser;
+ bool mWithinDepthLimit;
+ };
+ // Optimized traversal functions for leaf nodes directly access ScopedNodeInTraversalPath.
+ friend void TIntermSymbol::traverse(TIntermTraverser *);
+ friend void TIntermConstantUnion::traverse(TIntermTraverser *);
+ friend void TIntermFunctionPrototype::traverse(TIntermTraverser *);
+
+ TIntermNode *getParentNode() const
+ {
+ return mPath.size() <= 1 ? nullptr : mPath[mPath.size() - 2u];
+ }
+
+ // Return the nth ancestor of the node being traversed. getAncestorNode(0) == getParentNode()
+ TIntermNode *getAncestorNode(unsigned int n) const
+ {
+ if (mPath.size() > n + 1u)
+ {
+ return mPath[mPath.size() - n - 2u];
+ }
+ return nullptr;
+ }
+
+ // Returns what child index is currently being visited. For example when visiting the children
+ // of an aggregate, it can be used to find out which argument of the parent (aggregate) node
+ // they correspond to. Only valid in the PreVisit call of the child.
+ size_t getParentChildIndex(Visit visit) const
+ {
+ ASSERT(visit == PreVisit);
+ return mCurrentChildIndex;
+ }
+ // Returns what child index has just been processed. Only valid in the InVisit and PostVisit
+ // calls of the parent node.
+ size_t getLastTraversedChildIndex(Visit visit) const
+ {
+ ASSERT(visit != PreVisit);
+ return mCurrentChildIndex;
+ }
+
+ const TIntermBlock *getParentBlock() const;
+
+ TIntermNode *getRootNode() const
+ {
+ ASSERT(!mPath.empty());
+ return mPath.front();
+ }
+
+ void pushParentBlock(TIntermBlock *node);
+ void incrementParentBlockPos();
+ void popParentBlock();
+
+ // To replace a single node with multiple nodes in the parent aggregate. May be used with blocks
+ // but also with other nodes like declarations.
+ struct NodeReplaceWithMultipleEntry
+ {
+ NodeReplaceWithMultipleEntry(TIntermAggregateBase *parentIn,
+ TIntermNode *originalIn,
+ TIntermSequence &&replacementsIn)
+ : parent(parentIn), original(originalIn), replacements(std::move(replacementsIn))
+ {}
+
+ TIntermAggregateBase *parent;
+ TIntermNode *original;
+ TIntermSequence replacements;
+ };
+
+ // Helper to insert statements in the parent block of the node currently being traversed.
+ // The statements will be inserted before the node being traversed once updateTree is called.
+ // Should only be called during PreVisit or PostVisit if called from block nodes.
+ // Note that two insertions to the same position in the same block are not supported.
+ void insertStatementsInParentBlock(const TIntermSequence &insertions);
+
+ // Same as above, but supports simultaneous insertion of statements before and after the node
+ // currently being traversed.
+ void insertStatementsInParentBlock(const TIntermSequence &insertionsBefore,
+ const TIntermSequence &insertionsAfter);
+
+ // Helper to insert a single statement.
+ void insertStatementInParentBlock(TIntermNode *statement);
+
+ // Explicitly specify where to insert statements. The statements are inserted before and after
+ // the specified position. The statements will be inserted once updateTree is called. Note that
+ // two insertions to the same position in the same block are not supported.
+ void insertStatementsInBlockAtPosition(TIntermBlock *parent,
+ size_t position,
+ const TIntermSequence &insertionsBefore,
+ const TIntermSequence &insertionsAfter);
+
+ enum class OriginalNode
+ {
+ BECOMES_CHILD,
+ IS_DROPPED
+ };
+
+ void clearReplacementQueue();
+
+ // Replace the node currently being visited with replacement.
+ void queueReplacement(TIntermNode *replacement, OriginalNode originalStatus);
+ // Explicitly specify a node to replace with replacement.
+ void queueReplacementWithParent(TIntermNode *parent,
+ TIntermNode *original,
+ TIntermNode *replacement,
+ OriginalNode originalStatus);
+ // Walk the ancestors and replace the access chain that leads to this symbol. This fixes up the
+ // types of the intermediate nodes, so it should be used when the type of the symbol changes.
+ // The AST transformation must still visit the (indirect) index nodes to transform the
+ // expression inside those nodes. Note that due to the way these replacements work, the AST
+ // transformation should not attempt to replace the actual index node itself, but only a subnode
+ // of that.
+ //
+ // Node 1 Node 6
+ // EOpIndexDirect EOpIndexDirect
+ // / \ / \
+ // Node 2 Node 3 Node 7 Node 3
+ // EOpIndexIndirect N --> replaced with --> EOpIndexIndirect N
+ // / \ / \
+ // Node 4 Node 5 Node 8 Node 5
+ // symbol expression replacement expression
+ // ^ ^
+ // | |
+ // This symbol is being replaced, This node is directly placed in the
+ // and the replacement is given new access chain, and its parent is
+ // to this function. is changed. This is why a
+ // replacment attempt for this node
+ // itself will not work.
+ //
+ void queueAccessChainReplacement(TIntermTyped *replacement);
+
+ const bool preVisit;
+ const bool inVisit;
+ const bool postVisit;
+
+ int mMaxDepth;
+ int mMaxAllowedDepth;
+
+ bool mInGlobalScope;
+
+ // During traversing, save all the changes that need to happen into
+ // mReplacements/mMultiReplacements, then do them by calling updateTree().
+ // Multi replacements are processed after single replacements.
+ std::vector<NodeReplaceWithMultipleEntry> mMultiReplacements;
+
+ TSymbolTable *mSymbolTable;
+
+ private:
+ // To insert multiple nodes into the parent block.
+ struct NodeInsertMultipleEntry
+ {
+ NodeInsertMultipleEntry(TIntermBlock *_parent,
+ TIntermSequence::size_type _position,
+ TIntermSequence _insertionsBefore,
+ TIntermSequence _insertionsAfter)
+ : parent(_parent),
+ position(_position),
+ insertionsBefore(_insertionsBefore),
+ insertionsAfter(_insertionsAfter)
+ {}
+
+ TIntermBlock *parent;
+ TIntermSequence::size_type position;
+ TIntermSequence insertionsBefore;
+ TIntermSequence insertionsAfter;
+ };
+
+ static bool CompareInsertion(const NodeInsertMultipleEntry &a,
+ const NodeInsertMultipleEntry &b);
+
+ // To replace a single node with another on the parent node
+ struct NodeUpdateEntry
+ {
+ NodeUpdateEntry(TIntermNode *_parent,
+ TIntermNode *_original,
+ TIntermNode *_replacement,
+ bool _originalBecomesChildOfReplacement)
+ : parent(_parent),
+ original(_original),
+ replacement(_replacement),
+ originalBecomesChildOfReplacement(_originalBecomesChildOfReplacement)
+ {}
+
+ TIntermNode *parent;
+ TIntermNode *original;
+ TIntermNode *replacement;
+ bool originalBecomesChildOfReplacement;
+ };
+
+ struct ParentBlock
+ {
+ ParentBlock(TIntermBlock *nodeIn, TIntermSequence::size_type posIn)
+ : node(nodeIn), pos(posIn)
+ {}
+
+ TIntermBlock *node;
+ TIntermSequence::size_type pos;
+ };
+
+ std::vector<NodeInsertMultipleEntry> mInsertions;
+ std::vector<NodeUpdateEntry> mReplacements;
+
+ // All the nodes from root to the current node during traversing.
+ TVector<TIntermNode *> mPath;
+ // The current child of parent being traversed.
+ size_t mCurrentChildIndex;
+
+ // All the code blocks from the root to the current node's parent during traversal.
+ std::vector<ParentBlock> mParentBlockStack;
+};
+
+// Traverser parent class that tracks where a node is a destination of a write operation and so is
+// required to be an l-value.
+class TLValueTrackingTraverser : public TIntermTraverser
+{
+ public:
+ TLValueTrackingTraverser(bool preVisit,
+ bool inVisit,
+ bool postVisit,
+ TSymbolTable *symbolTable);
+ ~TLValueTrackingTraverser() override {}
+
+ void traverseBinary(TIntermBinary *node) final;
+ void traverseUnary(TIntermUnary *node) final;
+ void traverseAggregate(TIntermAggregate *node) final;
+
+ protected:
+ bool isLValueRequiredHere() const
+ {
+ return mOperatorRequiresLValue || mInFunctionCallOutParameter;
+ }
+
+ private:
+ // Track whether an l-value is required in the node that is currently being traversed by the
+ // surrounding operator.
+ // Use isLValueRequiredHere to check all conditions which require an l-value.
+ void setOperatorRequiresLValue(bool lValueRequired)
+ {
+ mOperatorRequiresLValue = lValueRequired;
+ }
+ bool operatorRequiresLValue() const { return mOperatorRequiresLValue; }
+
+ // Track whether an l-value is required inside a function call.
+ void setInFunctionCallOutParameter(bool inOutParameter);
+ bool isInFunctionCallOutParameter() const;
+
+ bool mOperatorRequiresLValue;
+ bool mInFunctionCallOutParameter;
+};
+
+} // namespace sh
+
+#endif // COMPILER_TRANSLATOR_TREEUTIL_INTERMTRAVERSE_H_
diff --git a/gfx/angle/checkout/src/compiler/translator/tree_util/NodeSearch.h b/gfx/angle/checkout/src/compiler/translator/tree_util/NodeSearch.h
new file mode 100644
index 0000000000..7764a2ebe3
--- /dev/null
+++ b/gfx/angle/checkout/src/compiler/translator/tree_util/NodeSearch.h
@@ -0,0 +1,56 @@
+//
+// Copyright 2002 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.
+//
+// NodeSearch.h: Utilities for searching translator node graphs
+//
+
+#ifndef COMPILER_TRANSLATOR_TREEUTIL_NODESEARCH_H_
+#define COMPILER_TRANSLATOR_TREEUTIL_NODESEARCH_H_
+
+#include "compiler/translator/tree_util/IntermTraverse.h"
+
+namespace sh
+{
+
+template <class Parent>
+class NodeSearchTraverser : public TIntermTraverser
+{
+ public:
+ NodeSearchTraverser() : TIntermTraverser(true, false, false), mFound(false) {}
+
+ bool found() const { return mFound; }
+
+ static bool search(TIntermNode *node)
+ {
+ Parent searchTraverser;
+ node->traverse(&searchTraverser);
+ return searchTraverser.found();
+ }
+
+ protected:
+ bool mFound;
+};
+
+class FindDiscard : public NodeSearchTraverser<FindDiscard>
+{
+ public:
+ bool visitBranch(Visit visit, TIntermBranch *node) override
+ {
+ switch (node->getFlowOp())
+ {
+ case EOpKill:
+ mFound = true;
+ break;
+
+ default:
+ break;
+ }
+
+ return !mFound;
+ }
+};
+} // namespace sh
+
+#endif // COMPILER_TRANSLATOR_TREEUTIL_NODESEARCH_H_
diff --git a/gfx/angle/checkout/src/compiler/translator/tree_util/NodeType.h b/gfx/angle/checkout/src/compiler/translator/tree_util/NodeType.h
new file mode 100644
index 0000000000..4ab63dbebb
--- /dev/null
+++ b/gfx/angle/checkout/src/compiler/translator/tree_util/NodeType.h
@@ -0,0 +1,155 @@
+//
+// Copyright 2020 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.
+//
+
+#ifndef COMPILER_TRANSLATOR_TRANSLATORMETALDIRECT_NODETYPE_H_
+#define COMPILER_TRANSLATOR_TRANSLATORMETALDIRECT_NODETYPE_H_
+
+#include "compiler/translator/tree_util/IntermTraverse.h"
+
+namespace sh
+{
+
+enum class NodeType
+{
+ Unknown,
+ Symbol,
+ ConstantUnion,
+ FunctionPrototype,
+ PreprocessorDirective,
+ Unary,
+ Binary,
+ Ternary,
+ Swizzle,
+ IfElse,
+ Switch,
+ Case,
+ FunctionDefinition,
+ Aggregate,
+ Block,
+ GlobalQualifierDeclaration,
+ Declaration,
+ Loop,
+ Branch,
+};
+
+// This is a function like object instead of a function that stack allocates this because
+// TIntermTraverser is a heavy object to construct.
+class GetNodeType : private TIntermTraverser
+{
+ NodeType nodeType;
+
+ public:
+ GetNodeType() : TIntermTraverser(true, false, false) {}
+
+ NodeType operator()(TIntermNode &node)
+ {
+ node.visit(Visit::PreVisit, this);
+ return nodeType;
+ }
+
+ private:
+ void visitSymbol(TIntermSymbol *) override { nodeType = NodeType::Symbol; }
+
+ void visitConstantUnion(TIntermConstantUnion *) override { nodeType = NodeType::ConstantUnion; }
+
+ void visitFunctionPrototype(TIntermFunctionPrototype *) override
+ {
+ nodeType = NodeType::FunctionPrototype;
+ }
+
+ void visitPreprocessorDirective(TIntermPreprocessorDirective *) override
+ {
+ nodeType = NodeType::PreprocessorDirective;
+ }
+
+ bool visitSwizzle(Visit, TIntermSwizzle *) override
+ {
+ nodeType = NodeType::Swizzle;
+ return false;
+ }
+
+ bool visitBinary(Visit, TIntermBinary *) override
+ {
+ nodeType = NodeType::Binary;
+ return false;
+ }
+
+ bool visitUnary(Visit, TIntermUnary *) override
+ {
+ nodeType = NodeType::Unary;
+ return false;
+ }
+
+ bool visitTernary(Visit, TIntermTernary *) override
+ {
+ nodeType = NodeType::Ternary;
+ return false;
+ }
+
+ bool visitIfElse(Visit, TIntermIfElse *) override
+ {
+ nodeType = NodeType::IfElse;
+ return false;
+ }
+
+ bool visitSwitch(Visit, TIntermSwitch *) override
+ {
+ nodeType = NodeType::Switch;
+ return false;
+ }
+
+ bool visitCase(Visit, TIntermCase *) override
+ {
+ nodeType = NodeType::Case;
+ return false;
+ }
+
+ bool visitFunctionDefinition(Visit, TIntermFunctionDefinition *) override
+ {
+ nodeType = NodeType::FunctionDefinition;
+ return false;
+ }
+
+ bool visitAggregate(Visit, TIntermAggregate *) override
+ {
+ nodeType = NodeType::Aggregate;
+ return false;
+ }
+
+ bool visitBlock(Visit, TIntermBlock *) override
+ {
+ nodeType = NodeType::Block;
+ return false;
+ }
+
+ bool visitGlobalQualifierDeclaration(Visit, TIntermGlobalQualifierDeclaration *) override
+ {
+ nodeType = NodeType::GlobalQualifierDeclaration;
+ return false;
+ }
+
+ bool visitDeclaration(Visit, TIntermDeclaration *) override
+ {
+ nodeType = NodeType::Declaration;
+ return false;
+ }
+
+ bool visitLoop(Visit, TIntermLoop *) override
+ {
+ nodeType = NodeType::Loop;
+ return false;
+ }
+
+ bool visitBranch(Visit, TIntermBranch *) override
+ {
+ nodeType = NodeType::Branch;
+ return false;
+ }
+};
+
+} // namespace sh
+
+#endif // COMPILER_TRANSLATOR_TRANSLATORMETALDIRECT_NODETYPE_H_
diff --git a/gfx/angle/checkout/src/compiler/translator/tree_util/ReplaceArrayOfMatrixVarying.cpp b/gfx/angle/checkout/src/compiler/translator/tree_util/ReplaceArrayOfMatrixVarying.cpp
new file mode 100644
index 0000000000..ddbb22685d
--- /dev/null
+++ b/gfx/angle/checkout/src/compiler/translator/tree_util/ReplaceArrayOfMatrixVarying.cpp
@@ -0,0 +1,175 @@
+//
+// Copyright 2020 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.
+//
+// ReplaceArrayOfMatrixVarying: Find any references to array of matrices varying
+// and replace it with array of vectors.
+//
+
+#include "compiler/translator/tree_util/ReplaceArrayOfMatrixVarying.h"
+
+#include <vector>
+
+#include "common/bitset_utils.h"
+#include "common/debug.h"
+#include "common/utilities.h"
+#include "compiler/translator/Compiler.h"
+#include "compiler/translator/SymbolTable.h"
+#include "compiler/translator/tree_util/BuiltIn.h"
+#include "compiler/translator/tree_util/FindMain.h"
+#include "compiler/translator/tree_util/IntermNode_util.h"
+#include "compiler/translator/tree_util/IntermTraverse.h"
+#include "compiler/translator/tree_util/ReplaceVariable.h"
+#include "compiler/translator/tree_util/RunAtTheEndOfShader.h"
+#include "compiler/translator/util.h"
+
+namespace sh
+{
+
+// We create two variables to replace the given varying:
+// - The new varying which is an array of vectors to be used at input/ouput only.
+// - The new global variable which is a same type as given variable, to temporarily be used
+// as replacements for assignments, arithmetic ops and so on. During input/ouput phrase, this temp
+// variable will be copied from/to the array of vectors variable above.
+// NOTE(hqle): Consider eliminating the need for using temp variable.
+
+namespace
+{
+class CollectVaryingTraverser : public TIntermTraverser
+{
+ public:
+ CollectVaryingTraverser(std::vector<const TVariable *> *varyingsOut)
+ : TIntermTraverser(true, false, false), mVaryingsOut(varyingsOut)
+ {}
+
+ bool visitDeclaration(Visit visit, TIntermDeclaration *node) override
+ {
+ const TIntermSequence &sequence = *(node->getSequence());
+
+ if (sequence.size() != 1)
+ {
+ return false;
+ }
+
+ TIntermTyped *variableType = sequence.front()->getAsTyped();
+ if (!variableType || !IsVarying(variableType->getQualifier()) ||
+ !variableType->isMatrix() || !variableType->isArray())
+ {
+ return false;
+ }
+
+ TIntermSymbol *variableSymbol = variableType->getAsSymbolNode();
+ if (!variableSymbol)
+ {
+ return false;
+ }
+
+ mVaryingsOut->push_back(&variableSymbol->variable());
+
+ return false;
+ }
+
+ private:
+ std::vector<const TVariable *> *mVaryingsOut;
+};
+} // namespace
+
+[[nodiscard]] bool ReplaceArrayOfMatrixVarying(TCompiler *compiler,
+ TIntermBlock *root,
+ TSymbolTable *symbolTable,
+ const TVariable *varying)
+{
+ const TType &type = varying->getType();
+
+ // Create global variable to temporarily acts as the given variable in places such as
+ // arithmetic, assignments an so on.
+ TType *tmpReplacementType = new TType(type);
+ tmpReplacementType->setQualifier(EvqGlobal);
+
+ TVariable *tempReplaceVar = new TVariable(
+ symbolTable, ImmutableString(std::string("ANGLE_AOM_Temp_") + varying->name().data()),
+ tmpReplacementType, SymbolType::AngleInternal);
+
+ if (!ReplaceVariable(compiler, root, varying, tempReplaceVar))
+ {
+ return false;
+ }
+
+ // Create array of vectors type
+ TType *varyingReplaceType = new TType(type);
+ varyingReplaceType->toMatrixColumnType();
+ varyingReplaceType->toArrayElementType();
+ varyingReplaceType->makeArray(type.getCols() * type.getOutermostArraySize());
+
+ TVariable *varyingReplaceVar =
+ new TVariable(symbolTable, varying->name(), varyingReplaceType, SymbolType::UserDefined);
+
+ TIntermSymbol *varyingReplaceDeclarator = new TIntermSymbol(varyingReplaceVar);
+ TIntermDeclaration *varyingReplaceDecl = new TIntermDeclaration;
+ varyingReplaceDecl->appendDeclarator(varyingReplaceDeclarator);
+ root->insertStatement(0, varyingReplaceDecl);
+
+ // Copy from/to the temp variable
+ TIntermBlock *reassignBlock = new TIntermBlock;
+ TIntermSymbol *tempReplaceSymbol = new TIntermSymbol(tempReplaceVar);
+ TIntermSymbol *varyingReplaceSymbol = new TIntermSymbol(varyingReplaceVar);
+ bool isInput = IsVaryingIn(type.getQualifier());
+
+ for (unsigned int i = 0; i < type.getOutermostArraySize(); ++i)
+ {
+ TIntermBinary *tempMatrixIndexed =
+ new TIntermBinary(EOpIndexDirect, tempReplaceSymbol->deepCopy(), CreateIndexNode(i));
+ for (uint8_t col = 0; col < type.getCols(); ++col)
+ {
+
+ TIntermBinary *tempMatrixColIndexed = new TIntermBinary(
+ EOpIndexDirect, tempMatrixIndexed->deepCopy(), CreateIndexNode(col));
+ TIntermBinary *vectorIndexed =
+ new TIntermBinary(EOpIndexDirect, varyingReplaceSymbol->deepCopy(),
+ CreateIndexNode(i * type.getCols() + col));
+ TIntermBinary *assignment;
+ if (isInput)
+ {
+ assignment = new TIntermBinary(EOpAssign, tempMatrixColIndexed, vectorIndexed);
+ }
+ else
+ {
+ assignment = new TIntermBinary(EOpAssign, vectorIndexed, tempMatrixColIndexed);
+ }
+ reassignBlock->appendStatement(assignment);
+ }
+ }
+
+ if (isInput)
+ {
+ TIntermFunctionDefinition *main = FindMain(root);
+ main->getBody()->insertStatement(0, reassignBlock);
+ return compiler->validateAST(root);
+ }
+ else
+ {
+ return RunAtTheEndOfShader(compiler, root, reassignBlock, symbolTable);
+ }
+}
+
+[[nodiscard]] bool ReplaceArrayOfMatrixVaryings(TCompiler *compiler,
+ TIntermBlock *root,
+ TSymbolTable *symbolTable)
+{
+ std::vector<const TVariable *> arrayOfMatrixVars;
+ CollectVaryingTraverser varCollector(&arrayOfMatrixVars);
+ root->traverse(&varCollector);
+
+ for (const TVariable *var : arrayOfMatrixVars)
+ {
+ if (!ReplaceArrayOfMatrixVarying(compiler, root, symbolTable, var))
+ {
+ return false;
+ }
+ }
+
+ return true;
+}
+
+} // namespace sh
diff --git a/gfx/angle/checkout/src/compiler/translator/tree_util/ReplaceArrayOfMatrixVarying.h b/gfx/angle/checkout/src/compiler/translator/tree_util/ReplaceArrayOfMatrixVarying.h
new file mode 100644
index 0000000000..62b6b320af
--- /dev/null
+++ b/gfx/angle/checkout/src/compiler/translator/tree_util/ReplaceArrayOfMatrixVarying.h
@@ -0,0 +1,33 @@
+//
+// Copyright 2020 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.
+//
+// ReplaceArrayOfMatrixVarying: Find any references to array of matrices varying
+// and replace it with array of vectors.
+//
+
+#ifndef COMPILER_TRANSLATOR_TREEUTIL_REPLACEARRAYOFMATRIXVARYING_H_
+#define COMPILER_TRANSLATOR_TREEUTIL_REPLACEARRAYOFMATRIXVARYING_H_
+
+#include "common/angleutils.h"
+
+namespace sh
+{
+
+class TCompiler;
+class TIntermBlock;
+class TSymbolTable;
+class TVariable;
+
+[[nodiscard]] bool ReplaceArrayOfMatrixVarying(TCompiler *compiler,
+ TIntermBlock *root,
+ TSymbolTable *symbolTable,
+ const TVariable *varying);
+
+[[nodiscard]] bool ReplaceArrayOfMatrixVaryings(TCompiler *compiler,
+ TIntermBlock *root,
+ TSymbolTable *symbolTable);
+} // namespace sh
+
+#endif
diff --git a/gfx/angle/checkout/src/compiler/translator/tree_util/ReplaceClipCullDistanceVariable.cpp b/gfx/angle/checkout/src/compiler/translator/tree_util/ReplaceClipCullDistanceVariable.cpp
new file mode 100644
index 0000000000..a8379f48f1
--- /dev/null
+++ b/gfx/angle/checkout/src/compiler/translator/tree_util/ReplaceClipCullDistanceVariable.cpp
@@ -0,0 +1,591 @@
+//
+// Copyright 2020 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.
+//
+// ReplaceClipCullDistanceVariable.cpp: Find any references to gl_ClipDistance or gl_CullDistance
+// and replace it with ANGLEClipDistance or ANGLECullDistance.
+//
+
+#include "compiler/translator/tree_util/ReplaceClipCullDistanceVariable.h"
+
+#include "common/bitset_utils.h"
+#include "common/debug.h"
+#include "common/utilities.h"
+#include "compiler/translator/Compiler.h"
+#include "compiler/translator/SymbolTable.h"
+#include "compiler/translator/tree_util/BuiltIn.h"
+#include "compiler/translator/tree_util/IntermNode_util.h"
+#include "compiler/translator/tree_util/IntermTraverse.h"
+#include "compiler/translator/tree_util/ReplaceVariable.h"
+#include "compiler/translator/tree_util/RunAtTheBeginningOfShader.h"
+#include "compiler/translator/tree_util/RunAtTheEndOfShader.h"
+
+namespace sh
+{
+namespace
+{
+
+using ClipCullDistanceIdxSet = angle::BitSet<32>;
+
+typedef TIntermNode *AssignFunc(const unsigned int index,
+ TIntermSymbol *left,
+ TIntermSymbol *right,
+ const TIntermTyped *enableFlags);
+
+template <typename Variable>
+const Variable *FindVariable(const std::vector<Variable> &mVars, const ImmutableString &name)
+{
+ for (const Variable &var : mVars)
+ {
+ if (name == var.instanceName)
+ {
+ return &var;
+ }
+ }
+
+ return nullptr;
+}
+
+// Traverse the tree and collect the redeclaration and all constant index references of
+// gl_ClipDistance/gl_CullDistance
+class GLClipCullDistanceReferenceTraverser : public TIntermTraverser
+{
+ public:
+ GLClipCullDistanceReferenceTraverser(const TIntermSymbol **redeclaredSymOut,
+ bool *nonConstIdxUsedOut,
+ unsigned int *maxConstIdxOut,
+ ClipCullDistanceIdxSet *constIndicesOut,
+ TQualifier targetQualifier)
+ : TIntermTraverser(true, false, false),
+ mRedeclaredSym(redeclaredSymOut),
+ mUseNonConstClipCullDistanceIndex(nonConstIdxUsedOut),
+ mMaxConstClipCullDistanceIndex(maxConstIdxOut),
+ mConstClipCullDistanceIndices(constIndicesOut),
+ mTargetQualifier(targetQualifier)
+ {
+ *mRedeclaredSym = nullptr;
+ *mUseNonConstClipCullDistanceIndex = false;
+ *mMaxConstClipCullDistanceIndex = 0;
+ mConstClipCullDistanceIndices->reset();
+ }
+
+ bool visitDeclaration(Visit visit, TIntermDeclaration *node) override
+ {
+ // If gl_ClipDistance/gl_CullDistance is redeclared, we need to collect its information
+ const TIntermSequence &sequence = *(node->getSequence());
+
+ if (sequence.size() != 1)
+ {
+ return true;
+ }
+
+ TIntermSymbol *variable = sequence.front()->getAsSymbolNode();
+ if (variable == nullptr || variable->getType().getQualifier() != mTargetQualifier)
+ {
+ return true;
+ }
+
+ *mRedeclaredSym = variable->getAsSymbolNode();
+
+ return true;
+ }
+
+ bool visitBinary(Visit visit, TIntermBinary *node) override
+ {
+ TOperator op = node->getOp();
+ if (op != EOpIndexDirect && op != EOpIndexIndirect)
+ {
+ return true;
+ }
+
+ // gl_ClipDistance / gl_CullDistance
+ TIntermTyped *left = node->getLeft()->getAsTyped();
+ if (!left)
+ {
+ return true;
+ }
+
+ ASSERT(op == EOpIndexDirect || op == EOpIndexIndirect);
+
+ TIntermSymbol *clipCullDistance = left->getAsSymbolNode();
+ if (!clipCullDistance)
+ {
+ return true;
+ }
+ if (clipCullDistance->getType().getQualifier() != mTargetQualifier)
+ {
+ return true;
+ }
+
+ const TConstantUnion *constIdx = node->getRight()->getConstantValue();
+ if (!constIdx)
+ {
+ *mUseNonConstClipCullDistanceIndex = true;
+ }
+ else
+ {
+ unsigned int idx = 0;
+ switch (constIdx->getType())
+ {
+ case EbtInt:
+ idx = constIdx->getIConst();
+ break;
+ case EbtUInt:
+ idx = constIdx->getUConst();
+ break;
+ case EbtFloat:
+ idx = static_cast<unsigned int>(constIdx->getFConst());
+ break;
+ case EbtBool:
+ idx = constIdx->getBConst() ? 1 : 0;
+ break;
+ default:
+ UNREACHABLE();
+ break;
+ }
+ ASSERT(idx < mConstClipCullDistanceIndices->size());
+ mConstClipCullDistanceIndices->set(idx);
+
+ *mMaxConstClipCullDistanceIndex = std::max(*mMaxConstClipCullDistanceIndex, idx);
+ }
+
+ return true;
+ }
+
+ private:
+ const TIntermSymbol **mRedeclaredSym;
+ // Flag indicating whether there is at least one reference of gl_ClipDistance with non-constant
+ // index
+ bool *mUseNonConstClipCullDistanceIndex;
+ // Max constant index that is used to reference gl_ClipDistance
+ unsigned int *mMaxConstClipCullDistanceIndex;
+ // List of constant index reference of gl_ClipDistance
+ ClipCullDistanceIdxSet *mConstClipCullDistanceIndices;
+ // Qualifier for gl_ClipDistance/gl_CullDistance
+ const TQualifier mTargetQualifier;
+};
+
+// Replace all symbolic occurrences of given variables except one symbol.
+class ReplaceVariableExceptOneTraverser : public TIntermTraverser
+{
+ public:
+ ReplaceVariableExceptOneTraverser(const TVariable *toBeReplaced,
+ const TIntermTyped *replacement,
+ const TIntermSymbol *exception)
+ : TIntermTraverser(true, false, false),
+ mToBeReplaced(toBeReplaced),
+ mException(exception),
+ mReplacement(replacement)
+ {}
+
+ void visitSymbol(TIntermSymbol *node) override
+ {
+ if (&node->variable() == mToBeReplaced && node != mException)
+ {
+ queueReplacement(mReplacement->deepCopy(), OriginalNode::IS_DROPPED);
+ }
+ }
+
+ private:
+ const TVariable *const mToBeReplaced;
+ const TIntermSymbol *const mException;
+ const TIntermTyped *const mReplacement;
+};
+
+TIntermNode *simpleAssignFunc(const unsigned int index,
+ TIntermSymbol *leftSymbol,
+ TIntermSymbol *rightSymbol,
+ const TIntermTyped * /*enableFlags*/)
+{
+ // leftSymbol[index] = rightSymbol[index]
+ // E.g., ANGLEClipDistance[index] = gl_ClipDistance[index]
+ TIntermBinary *left =
+ new TIntermBinary(EOpIndexDirect, leftSymbol->deepCopy(), CreateIndexNode(index));
+ TIntermBinary *right =
+ new TIntermBinary(EOpIndexDirect, rightSymbol->deepCopy(), CreateIndexNode(index));
+
+ return new TIntermBinary(EOpAssign, left, right);
+}
+
+// This is only used for gl_ClipDistance
+TIntermNode *assignFuncWithEnableFlags(const unsigned int index,
+ TIntermSymbol *leftSymbol,
+ TIntermSymbol *rightSymbol,
+ const TIntermTyped *enableFlags)
+{
+ // if (ANGLEUniforms.clipDistancesEnabled & (0x1 << index))
+ // gl_ClipDistance[index] = ANGLEClipDistance[index];
+ // else
+ // gl_ClipDistance[index] = 0;
+ TIntermConstantUnion *bitMask = CreateUIntNode(0x1 << index);
+ TIntermBinary *bitwiseAnd = new TIntermBinary(EOpBitwiseAnd, enableFlags->deepCopy(), bitMask);
+ TIntermBinary *nonZero = new TIntermBinary(EOpNotEqual, bitwiseAnd, CreateUIntNode(0));
+
+ TIntermBinary *left =
+ new TIntermBinary(EOpIndexDirect, leftSymbol->deepCopy(), CreateIndexNode(index));
+ TIntermBinary *right =
+ new TIntermBinary(EOpIndexDirect, rightSymbol->deepCopy(), CreateIndexNode(index));
+ TIntermBinary *assignment = new TIntermBinary(EOpAssign, left, right);
+ TIntermBlock *trueBlock = new TIntermBlock();
+ trueBlock->appendStatement(assignment);
+
+ TIntermBinary *zeroAssignment =
+ new TIntermBinary(EOpAssign, left->deepCopy(), CreateFloatNode(0, EbpMedium));
+ TIntermBlock *falseBlock = new TIntermBlock();
+ falseBlock->appendStatement(zeroAssignment);
+
+ return new TIntermIfElse(nonZero, trueBlock, falseBlock);
+}
+
+class ReplaceClipCullDistanceAssignments : angle::NonCopyable
+{
+ public:
+ ReplaceClipCullDistanceAssignments(TCompiler *compiler,
+ TIntermBlock *root,
+ TSymbolTable *symbolTable,
+ const TVariable *glClipCullDistanceVar,
+ const TIntermSymbol *redeclaredGlClipDistance,
+ const ImmutableString &angleVarName)
+ : mCompiler(compiler),
+ mRoot(root),
+ mSymbolTable(symbolTable),
+ mGlVar(glClipCullDistanceVar),
+ mRedeclaredGLVar(redeclaredGlClipDistance),
+ mANGLEVarName(angleVarName)
+ {
+ mEnabledDistances = 0;
+ }
+
+ unsigned int getEnabledClipCullDistance(const bool useNonConstIndex,
+ const unsigned int maxConstIndex);
+ const TVariable *declareANGLEVariable(const TVariable *originalVariable);
+ bool assignOriginalValueToANGLEVariable(const GLenum shaderType);
+ bool assignANGLEValueToOriginalVariable(const GLenum shaderType,
+ const bool isRedeclared,
+ const TIntermTyped *enableFlags,
+ const ClipCullDistanceIdxSet *constIndices);
+
+ private:
+ bool assignOriginalValueToANGLEVariableImpl();
+ bool assignANGLEValueToOriginalVariableImpl(const bool isRedeclared,
+ const TIntermTyped *enableFlags,
+ const ClipCullDistanceIdxSet *constIndices,
+ AssignFunc assignFunc);
+
+ // Common variables for replacing gl_Clip/CullDistances with ANGLEClip/CullDistances
+ TCompiler *mCompiler;
+ TIntermBlock *mRoot;
+ TSymbolTable *mSymbolTable;
+
+ const TVariable *mGlVar;
+ const TIntermSymbol *mRedeclaredGLVar;
+ const ImmutableString mANGLEVarName;
+
+ unsigned int mEnabledDistances;
+ const TVariable *mANGLEVar;
+};
+
+unsigned int ReplaceClipCullDistanceAssignments::getEnabledClipCullDistance(
+ const bool useNonConstIndex,
+ const unsigned int maxConstIndex)
+{
+ if (mRedeclaredGLVar)
+ {
+ // If array is redeclared by user, use that redeclared size.
+ mEnabledDistances = mRedeclaredGLVar->getType().getOutermostArraySize();
+ }
+ else if (!useNonConstIndex)
+ {
+ ASSERT(maxConstIndex < mGlVar->getType().getOutermostArraySize());
+ // Only use constant index, then use max array index used.
+ mEnabledDistances = maxConstIndex + 1;
+ }
+
+ return mEnabledDistances;
+}
+
+const TVariable *ReplaceClipCullDistanceAssignments::declareANGLEVariable(
+ const TVariable *originalVariable)
+{
+ ASSERT(mEnabledDistances > 0);
+
+ TType *clipCullDistanceType = new TType(originalVariable->getType());
+ clipCullDistanceType->setQualifier(EvqGlobal);
+ clipCullDistanceType->toArrayBaseType();
+ clipCullDistanceType->makeArray(mEnabledDistances);
+
+ mANGLEVar =
+ new TVariable(mSymbolTable, mANGLEVarName, clipCullDistanceType, SymbolType::AngleInternal);
+
+ TIntermSymbol *clipCullDistanceDeclarator = new TIntermSymbol(mANGLEVar);
+ TIntermDeclaration *clipCullDistanceDecl = new TIntermDeclaration;
+ clipCullDistanceDecl->appendDeclarator(clipCullDistanceDeclarator);
+
+ // Must declare ANGLEClipdistance/ANGLECullDistance before any function, since
+ // gl_ClipDistance/gl_CullDistance might be accessed within a function declared before main.
+ mRoot->insertStatement(0, clipCullDistanceDecl);
+
+ return mANGLEVar;
+}
+
+bool ReplaceClipCullDistanceAssignments::assignOriginalValueToANGLEVariableImpl()
+{
+ ASSERT(mEnabledDistances > 0);
+
+ TIntermBlock *readBlock = new TIntermBlock;
+ TIntermSymbol *glClipCullDistanceSymbol = new TIntermSymbol(mGlVar);
+ TIntermSymbol *clipCullDistanceSymbol = new TIntermSymbol(mANGLEVar);
+
+ for (unsigned int i = 0; i < mEnabledDistances; i++)
+ {
+ readBlock->appendStatement(
+ simpleAssignFunc(i, clipCullDistanceSymbol, glClipCullDistanceSymbol, nullptr));
+ }
+
+ return RunAtTheBeginningOfShader(mCompiler, mRoot, readBlock);
+}
+
+bool ReplaceClipCullDistanceAssignments::assignANGLEValueToOriginalVariableImpl(
+ const bool isRedeclared,
+ const TIntermTyped *enableFlags,
+ const ClipCullDistanceIdxSet *constIndices,
+ AssignFunc assignFunc)
+{
+ ASSERT(mEnabledDistances > 0);
+
+ TIntermBlock *assignBlock = new TIntermBlock;
+ TIntermSymbol *glClipCullDistanceSymbol = new TIntermSymbol(mGlVar);
+ TIntermSymbol *clipCullDistanceSymbol = new TIntermSymbol(mANGLEVar);
+
+ // The array size is decided by either redeclaring the variable or accessing the variable with a
+ // integral constant index. And this size is the count of the enabled value. So, if the index
+ // which is greater than the array size, is used to access the variable, this access will be
+ // ignored.
+ if (isRedeclared || !constIndices)
+ {
+ for (unsigned int i = 0; i < mEnabledDistances; ++i)
+ {
+ assignBlock->appendStatement(
+ assignFunc(i, glClipCullDistanceSymbol, clipCullDistanceSymbol, enableFlags));
+ }
+ }
+ else
+ {
+ // Assign ANGLEClip/CullDistance[i]'s value to gl_Clip/CullDistance[i] if i is in the
+ // constant indices list. Those elements whose index is not in the constant index list will
+ // be zeroise for initialization.
+ for (unsigned int i = 0; i < mEnabledDistances; ++i)
+ {
+ if (constIndices->test(i))
+ {
+ assignBlock->appendStatement(
+ assignFunc(i, glClipCullDistanceSymbol, clipCullDistanceSymbol, enableFlags));
+ }
+ else
+ {
+ // gl_Clip/CullDistance[i] = 0;
+ TIntermBinary *left = new TIntermBinary(
+ EOpIndexDirect, glClipCullDistanceSymbol->deepCopy(), CreateIndexNode(i));
+ TIntermBinary *zeroAssignment =
+ new TIntermBinary(EOpAssign, left, CreateFloatNode(0, EbpMedium));
+ assignBlock->appendStatement(zeroAssignment);
+ }
+ }
+ }
+
+ return RunAtTheEndOfShader(mCompiler, mRoot, assignBlock, mSymbolTable);
+}
+
+[[nodiscard]] bool ReplaceClipCullDistanceAssignments::assignOriginalValueToANGLEVariable(
+ const GLenum shaderType)
+{
+ switch (shaderType)
+ {
+ case GL_VERTEX_SHADER:
+ // Vertex shader can use gl_Clip/CullDistance as a output only
+ break;
+ case GL_FRAGMENT_SHADER:
+ {
+ // These shader types can use gl_Clip/CullDistance as input
+ if (!assignOriginalValueToANGLEVariableImpl())
+ {
+ return false;
+ }
+ break;
+ }
+ default:
+ {
+ UNREACHABLE();
+ return false;
+ }
+ }
+
+ return true;
+}
+
+[[nodiscard]] bool ReplaceClipCullDistanceAssignments::assignANGLEValueToOriginalVariable(
+ const GLenum shaderType,
+ const bool isRedeclared,
+ const TIntermTyped *enableFlags,
+ const ClipCullDistanceIdxSet *constIndices)
+{
+ switch (shaderType)
+ {
+ case GL_VERTEX_SHADER:
+ {
+ // Vertex shader can use gl_Clip/CullDistance as output.
+ // If the enabled gl_Clip/CullDistances are not initialized, results are undefined.
+ // EXT_clip_cull_distance spec :
+ // The shader must also set all values in gl_ClipDistance that have been enabled via the
+ // OpenGL ES API, or results are undefined. Values written into gl_ClipDistance for
+ // planes that are not enabled have no effect.
+ // ...
+ // Shaders writing gl_CullDistance must write all enabled distances, or culling results
+ // are undefined.
+ if (!assignANGLEValueToOriginalVariableImpl(
+ isRedeclared, enableFlags, constIndices,
+ enableFlags ? assignFuncWithEnableFlags : simpleAssignFunc))
+ {
+ return false;
+ }
+ break;
+ }
+ case GL_FRAGMENT_SHADER:
+ // Fragment shader can use gl_Clip/CullDistance as input only
+ break;
+ default:
+ {
+ UNREACHABLE();
+ return false;
+ }
+ }
+
+ return true;
+}
+
+// Common code to transform gl_ClipDistance and gl_CullDistance. Comments reference
+// gl_ClipDistance, but are also applicable to gl_CullDistance.
+[[nodiscard]] bool ReplaceClipCullDistanceAssignmentsImpl(
+ TCompiler *compiler,
+ TIntermBlock *root,
+ TSymbolTable *symbolTable,
+ const GLenum shaderType,
+ const TIntermTyped *clipDistanceEnableFlags,
+ const char *builtInName,
+ const char *replacementName,
+ TQualifier builtInQualifier)
+{
+ // Collect all constant index references of gl_ClipDistance
+ ImmutableString name(builtInName);
+ ClipCullDistanceIdxSet constIndices;
+ bool useNonConstIndex = false;
+ const TIntermSymbol *redeclaredBuiltIn = nullptr;
+ unsigned int maxConstIndex = 0;
+ GLClipCullDistanceReferenceTraverser indexTraverser(
+ &redeclaredBuiltIn, &useNonConstIndex, &maxConstIndex, &constIndices, builtInQualifier);
+ root->traverse(&indexTraverser);
+ if (!useNonConstIndex && constIndices.none())
+ {
+ // No references of gl_ClipDistance
+ return true;
+ }
+
+ // Retrieve gl_ClipDistance variable reference
+ // Search user redeclared gl_ClipDistance first
+ const TVariable *builtInVar = nullptr;
+ if (redeclaredBuiltIn)
+ {
+ builtInVar = &redeclaredBuiltIn->variable();
+ }
+ else
+ {
+ // User defined not found, find in built-in table
+ builtInVar = static_cast<const TVariable *>(
+ symbolTable->findBuiltIn(name, compiler->getShaderVersion()));
+ }
+ if (!builtInVar)
+ {
+ return false;
+ }
+
+ ReplaceClipCullDistanceAssignments replacementUtils(compiler, root, symbolTable, builtInVar,
+ redeclaredBuiltIn,
+ ImmutableString(replacementName));
+
+ // Declare a global variable substituting gl_ClipDistance
+ unsigned int enabledClipDistances =
+ replacementUtils.getEnabledClipCullDistance(useNonConstIndex, maxConstIndex);
+ if (!enabledClipDistances)
+ {
+ // Spec :
+ // The gl_ClipDistance array is predeclared as unsized and must be explicitly sized by the
+ // shader either redeclaring it with a size or implicitly sized by indexing it only with
+ // integral constant expressions.
+ return false;
+ }
+
+ const TVariable *replacementVar = replacementUtils.declareANGLEVariable(builtInVar);
+
+ // Replace gl_ClipDistance reference with ANGLEClipDistance, except the declaration
+ ReplaceVariableExceptOneTraverser replaceTraverser(builtInVar,
+ new TIntermSymbol(replacementVar),
+ /** exception */ redeclaredBuiltIn);
+ root->traverse(&replaceTraverser);
+ if (!replaceTraverser.updateTree(compiler, root))
+ {
+ return false;
+ }
+
+ // Read gl_ClipDistance to ANGLEClipDistance for getting a original data
+ if (!replacementUtils.assignOriginalValueToANGLEVariable(shaderType))
+ {
+ return false;
+ }
+
+ // Reassign ANGLEClipDistance to gl_ClipDistance but ignore those that are disabled
+ const bool isRedeclared = redeclaredBuiltIn != nullptr;
+ if (!replacementUtils.assignANGLEValueToOriginalVariable(
+ shaderType, isRedeclared, clipDistanceEnableFlags, &constIndices))
+ {
+ return false;
+ }
+
+ // If not redeclared, replace the built-in with one that is appropriately sized
+ if (!isRedeclared)
+ {
+ TType *resizedType = new TType(builtInVar->getType());
+ resizedType->setArraySize(0, enabledClipDistances);
+
+ TVariable *resizedVar = new TVariable(symbolTable, name, resizedType, SymbolType::BuiltIn);
+
+ return ReplaceVariable(compiler, root, builtInVar, resizedVar);
+ }
+
+ return true;
+}
+
+} // anonymous namespace
+
+[[nodiscard]] bool ReplaceClipDistanceAssignments(TCompiler *compiler,
+ TIntermBlock *root,
+ TSymbolTable *symbolTable,
+ const GLenum shaderType,
+ const TIntermTyped *clipDistanceEnableFlags)
+{
+ return ReplaceClipCullDistanceAssignmentsImpl(compiler, root, symbolTable, shaderType,
+ clipDistanceEnableFlags, "gl_ClipDistance",
+ "ANGLEClipDistance", EvqClipDistance);
+}
+
+[[nodiscard]] bool ReplaceCullDistanceAssignments(TCompiler *compiler,
+ TIntermBlock *root,
+ TSymbolTable *symbolTable,
+ const GLenum shaderType)
+{
+ return ReplaceClipCullDistanceAssignmentsImpl(compiler, root, symbolTable, shaderType, nullptr,
+ "gl_CullDistance", "ANGLECullDistance",
+ EvqCullDistance);
+}
+
+} // namespace sh
diff --git a/gfx/angle/checkout/src/compiler/translator/tree_util/ReplaceClipCullDistanceVariable.h b/gfx/angle/checkout/src/compiler/translator/tree_util/ReplaceClipCullDistanceVariable.h
new file mode 100644
index 0000000000..93d19f9fe2
--- /dev/null
+++ b/gfx/angle/checkout/src/compiler/translator/tree_util/ReplaceClipCullDistanceVariable.h
@@ -0,0 +1,43 @@
+//
+// Copyright 2020 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.
+//
+// ReplaceClipCullDistanceVariable.h: Find any references to gl_ClipDistance or gl_CullDistance and
+// replace it with ANGLEClipDistance or ANGLECullDistance.
+//
+
+#ifndef COMPILER_TRANSLATOR_TREEUTIL_REPLACECLIPCULLDISTANCEVARIABLE_H_
+#define COMPILER_TRANSLATOR_TREEUTIL_REPLACECLIPCULLDISTANCEVARIABLE_H_
+
+#include "GLSLANG/ShaderLang.h"
+#include "common/angleutils.h"
+
+namespace sh
+{
+
+struct InterfaceBlock;
+class TCompiler;
+class TIntermBlock;
+class TSymbolTable;
+class TIntermTyped;
+
+// Replace every gl_ClipDistance assignment with assignment to "ANGLEClipDistance",
+// then at the end of shader re-assign the values of this global variable to gl_ClipDistance.
+// This to solve some complex usages such as user passing gl_ClipDistance as output reference
+// to a function.
+// Furthermore, at the end shader, some disabled gl_ClipDistance[i] can be skipped from the
+// assignment.
+[[nodiscard]] bool ReplaceClipDistanceAssignments(TCompiler *compiler,
+ TIntermBlock *root,
+ TSymbolTable *symbolTable,
+ const GLenum shaderType,
+ const TIntermTyped *clipDistanceEnableFlags);
+
+[[nodiscard]] bool ReplaceCullDistanceAssignments(TCompiler *compiler,
+ TIntermBlock *root,
+ TSymbolTable *symbolTable,
+ const GLenum shaderType);
+} // namespace sh
+
+#endif
diff --git a/gfx/angle/checkout/src/compiler/translator/tree_util/ReplaceShadowingVariables.cpp b/gfx/angle/checkout/src/compiler/translator/tree_util/ReplaceShadowingVariables.cpp
new file mode 100644
index 0000000000..47842eaade
--- /dev/null
+++ b/gfx/angle/checkout/src/compiler/translator/tree_util/ReplaceShadowingVariables.cpp
@@ -0,0 +1,142 @@
+//
+// 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.
+//
+// ReplaceShadowingVariables.cpp: Replace all references to any variable in the AST that is
+// a redefinition of a variable in a nested scope. This is a useful for ESSL 1.00 shaders
+// where the spec section "4.2.3. Redeclaring Variables" states "However, a nested scope can
+// override an outer scope's declaration of a particular variable name." This is changed in
+// later spec versions, such as ESSL 3.20 spec which states "If [a variable] is declared as
+// a parameter in a function definition, it is scoped until the end of that function
+// definition. A function's parameter declarations and body together form a single scope."
+//
+// So this class is useful when translating from ESSL 1.00 shaders, where function body var
+// redefinition is allowed, to later shader versions where it's not allowed.
+//
+
+#include "compiler/translator/tree_util/ReplaceShadowingVariables.h"
+#include "compiler/translator/tree_util/ReplaceVariable.h"
+
+#include "compiler/translator/Compiler.h"
+#include "compiler/translator/IntermNode.h"
+#include "compiler/translator/Symbol.h"
+#include "compiler/translator/SymbolTable.h"
+#include "compiler/translator/tree_util/IntermNode_util.h"
+#include "compiler/translator/tree_util/IntermTraverse.h"
+
+#include <unordered_set>
+
+namespace sh
+{
+
+namespace
+{
+
+// Custom struct to queue up any replacements until after AST traversal
+struct DeferredReplacementBlock
+{
+ const TVariable *originalVariable; // variable to be replaced
+ TVariable *replacementVariable; // variable to replace originalVar with
+ TIntermBlock *functionBody; // function body where replacement occurs
+};
+
+class ReplaceShadowingVariablesTraverser : public TIntermTraverser
+{
+ public:
+ ReplaceShadowingVariablesTraverser(TSymbolTable *symbolTable)
+ : TIntermTraverser(true, true, true, symbolTable), mParameterNames{}, mFunctionBody(nullptr)
+ {}
+
+ bool visitFunctionDefinition(Visit visit, TIntermFunctionDefinition *node) override
+ {
+ // In pre-visit of function, record params
+ if (visit == PreVisit)
+ {
+ ASSERT(mParameterNames.size() == 0);
+ const TFunction *func = node->getFunctionPrototype()->getFunction();
+ // Grab all of the parameter names from the function prototype
+ size_t paramCount = func->getParamCount();
+ for (size_t i = 0; i < paramCount; ++i)
+ {
+ mParameterNames.emplace(std::string(func->getParam(i)->name().data()));
+ }
+ if (mParameterNames.size() > 0)
+ mFunctionBody = node->getBody();
+ }
+ else if (visit == PostVisit)
+ {
+ // Clear data saved from function definition
+ mParameterNames.clear();
+ mFunctionBody = nullptr;
+ }
+ return true;
+ }
+ bool visitDeclaration(Visit visit, TIntermDeclaration *node) override
+ {
+ if (visit == PreVisit && mParameterNames.size() != 0)
+ {
+ TIntermSequence *decls = node->getSequence();
+ for (auto &declVector : *decls)
+ {
+ // no init case
+ TIntermSymbol *symNode = declVector->getAsSymbolNode();
+ if (symNode == nullptr)
+ {
+ // init case
+ TIntermBinary *binaryNode = declVector->getAsBinaryNode();
+ ASSERT(binaryNode->getOp() == EOpInitialize);
+ symNode = binaryNode->getLeft()->getAsSymbolNode();
+ }
+ ASSERT(symNode != nullptr);
+ std::string varName = std::string(symNode->variable().name().data());
+ if (mParameterNames.count(varName) > 0)
+ {
+ // We found a redefined var so queue replacement
+ mReplacements.emplace_back(DeferredReplacementBlock{
+ &symNode->variable(),
+ CreateTempVariable(mSymbolTable, &symNode->variable().getType()),
+ mFunctionBody});
+ }
+ }
+ }
+ return true;
+ }
+ // Perform replacement of vars for any deferred replacements that were identified
+ [[nodiscard]] bool executeReplacements(TCompiler *compiler)
+ {
+ for (DeferredReplacementBlock &replace : mReplacements)
+ {
+ if (!ReplaceVariable(compiler, replace.functionBody, replace.originalVariable,
+ replace.replacementVariable))
+ {
+ return false;
+ }
+ }
+ mReplacements.clear();
+ return true;
+ }
+
+ private:
+ std::unordered_set<std::string> mParameterNames;
+ TIntermBlock *mFunctionBody;
+ std::vector<DeferredReplacementBlock> mReplacements;
+};
+
+} // anonymous namespace
+
+// Replaces every occurrence of a variable with another variable.
+[[nodiscard]] bool ReplaceShadowingVariables(TCompiler *compiler,
+ TIntermBlock *root,
+ TSymbolTable *symbolTable)
+{
+ ReplaceShadowingVariablesTraverser traverser(symbolTable);
+ root->traverse(&traverser);
+ if (!traverser.executeReplacements(compiler))
+ {
+ return false;
+ }
+ return traverser.updateTree(compiler, root);
+}
+
+} // namespace sh
diff --git a/gfx/angle/checkout/src/compiler/translator/tree_util/ReplaceShadowingVariables.h b/gfx/angle/checkout/src/compiler/translator/tree_util/ReplaceShadowingVariables.h
new file mode 100644
index 0000000000..f6da350f5f
--- /dev/null
+++ b/gfx/angle/checkout/src/compiler/translator/tree_util/ReplaceShadowingVariables.h
@@ -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.
+//
+// ReplaceShadowingVariables.h: Find any variables that are redefined within a nested
+// scope and replace them with a newly named variable.
+
+#ifndef COMPILER_TRANSLATOR_TREEUTIL_REPLACESHADOWINGVARIABLES_H_
+#define COMPILER_TRANSLATOR_TREEUTIL_REPLACESHADOWINGVARIABLES_H_
+
+#include "common/angleutils.h"
+
+namespace sh
+{
+
+class TCompiler;
+class TIntermBlock;
+class TSymbolTable;
+
+[[nodiscard]] bool ReplaceShadowingVariables(TCompiler *compiler,
+ TIntermBlock *root,
+ TSymbolTable *symbolTable);
+} // namespace sh
+
+#endif // COMPILER_TRANSLATOR_TREEUTIL_REPLACESHADOWINGVARIABLES_H_
diff --git a/gfx/angle/checkout/src/compiler/translator/tree_util/ReplaceVariable.cpp b/gfx/angle/checkout/src/compiler/translator/tree_util/ReplaceVariable.cpp
new file mode 100644
index 0000000000..697cfe6c74
--- /dev/null
+++ b/gfx/angle/checkout/src/compiler/translator/tree_util/ReplaceVariable.cpp
@@ -0,0 +1,145 @@
+//
+// 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.
+//
+// ReplaceVariable.cpp: Replace all references to a specific variable in the AST with references to
+// another variable.
+
+#include "compiler/translator/tree_util/ReplaceVariable.h"
+
+#include "compiler/translator/IntermNode.h"
+#include "compiler/translator/Symbol.h"
+#include "compiler/translator/tree_util/IntermTraverse.h"
+
+namespace sh
+{
+
+namespace
+{
+
+class ReplaceVariableTraverser : public TIntermTraverser
+{
+ public:
+ ReplaceVariableTraverser(const TVariable *toBeReplaced, const TIntermTyped *replacement)
+ : TIntermTraverser(true, false, false),
+ mToBeReplaced(toBeReplaced),
+ mReplacement(replacement)
+ {}
+
+ void visitSymbol(TIntermSymbol *node) override
+ {
+ if (&node->variable() == mToBeReplaced)
+ {
+ queueReplacement(mReplacement->deepCopy(), OriginalNode::IS_DROPPED);
+ }
+ }
+
+ private:
+ const TVariable *const mToBeReplaced;
+ const TIntermTyped *const mReplacement;
+};
+
+class ReplaceVariablesTraverser : public TIntermTraverser
+{
+ public:
+ ReplaceVariablesTraverser(const VariableReplacementMap &variableMap)
+ : TIntermTraverser(true, false, false), mVariableMap(variableMap)
+ {}
+
+ void visitSymbol(TIntermSymbol *node) override
+ {
+ auto iter = mVariableMap.find(&node->variable());
+ if (iter != mVariableMap.end())
+ {
+ queueReplacement(iter->second->deepCopy(), OriginalNode::IS_DROPPED);
+ }
+ }
+
+ private:
+ const VariableReplacementMap &mVariableMap;
+};
+
+class GetDeclaratorReplacementsTraverser : public TIntermTraverser
+{
+ public:
+ GetDeclaratorReplacementsTraverser(TSymbolTable *symbolTable,
+ VariableReplacementMap *variableMap)
+ : TIntermTraverser(true, false, false, symbolTable), mVariableMap(variableMap)
+ {}
+
+ bool visitDeclaration(Visit visit, TIntermDeclaration *node) override
+ {
+ const TIntermSequence &sequence = *(node->getSequence());
+
+ for (TIntermNode *decl : sequence)
+ {
+ TIntermSymbol *asSymbol = decl->getAsSymbolNode();
+ TIntermBinary *asBinary = decl->getAsBinaryNode();
+
+ if (asBinary != nullptr)
+ {
+ ASSERT(asBinary->getOp() == EOpInitialize);
+ asSymbol = asBinary->getLeft()->getAsSymbolNode();
+ }
+
+ ASSERT(asSymbol);
+ const TVariable &variable = asSymbol->variable();
+
+ ASSERT(mVariableMap->find(&variable) == mVariableMap->end());
+
+ const TVariable *replacementVariable = new TVariable(
+ mSymbolTable, variable.name(), &variable.getType(), variable.symbolType());
+
+ (*mVariableMap)[&variable] = new TIntermSymbol(replacementVariable);
+ }
+
+ return false;
+ }
+
+ private:
+ VariableReplacementMap *mVariableMap;
+};
+
+} // anonymous namespace
+
+// Replaces every occurrence of a variable with another variable.
+[[nodiscard]] bool ReplaceVariable(TCompiler *compiler,
+ TIntermBlock *root,
+ const TVariable *toBeReplaced,
+ const TVariable *replacement)
+{
+ ReplaceVariableTraverser traverser(toBeReplaced, new TIntermSymbol(replacement));
+ root->traverse(&traverser);
+ return traverser.updateTree(compiler, root);
+}
+
+[[nodiscard]] bool ReplaceVariables(TCompiler *compiler,
+ TIntermBlock *root,
+ const VariableReplacementMap &variableMap)
+{
+ ReplaceVariablesTraverser traverser(variableMap);
+ root->traverse(&traverser);
+ return traverser.updateTree(compiler, root);
+}
+
+void GetDeclaratorReplacements(TSymbolTable *symbolTable,
+ TIntermBlock *root,
+ VariableReplacementMap *variableMap)
+{
+ GetDeclaratorReplacementsTraverser traverser(symbolTable, variableMap);
+ root->traverse(&traverser);
+}
+
+// Replaces every occurrence of a variable with a TIntermNode.
+[[nodiscard]] bool ReplaceVariableWithTyped(TCompiler *compiler,
+ TIntermBlock *root,
+ const TVariable *toBeReplaced,
+ const TIntermTyped *replacement)
+{
+ ReplaceVariableTraverser traverser(toBeReplaced, replacement);
+ root->traverse(&traverser);
+ return traverser.updateTree(compiler, root);
+}
+
+} // namespace sh
diff --git a/gfx/angle/checkout/src/compiler/translator/tree_util/ReplaceVariable.h b/gfx/angle/checkout/src/compiler/translator/tree_util/ReplaceVariable.h
new file mode 100644
index 0000000000..e96bbc7a82
--- /dev/null
+++ b/gfx/angle/checkout/src/compiler/translator/tree_util/ReplaceVariable.h
@@ -0,0 +1,48 @@
+//
+// 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.
+//
+// ReplaceVariable.h: Replace all references to a specific variable in the AST with references to
+// another variable.
+
+#ifndef COMPILER_TRANSLATOR_TREEUTIL_REPLACEVARIABLE_H_
+#define COMPILER_TRANSLATOR_TREEUTIL_REPLACEVARIABLE_H_
+
+#include "common/angleutils.h"
+
+namespace sh
+{
+
+class TCompiler;
+class TIntermBlock;
+class TIntermTyped;
+class TSymbolTable;
+class TVariable;
+
+[[nodiscard]] bool ReplaceVariable(TCompiler *compiler,
+ TIntermBlock *root,
+ const TVariable *toBeReplaced,
+ const TVariable *replacement);
+[[nodiscard]] bool ReplaceVariableWithTyped(TCompiler *compiler,
+ TIntermBlock *root,
+ const TVariable *toBeReplaced,
+ const TIntermTyped *replacement);
+
+using VariableReplacementMap = angle::HashMap<const TVariable *, const TIntermTyped *>;
+
+// Replace a set of variables with their corresponding expression.
+[[nodiscard]] bool ReplaceVariables(TCompiler *compiler,
+ TIntermBlock *root,
+ const VariableReplacementMap &variableMap);
+
+// Find all declarators, and replace the TVariable they are declaring with a duplicate. This is
+// used to support deepCopy of TIntermBlock and TIntermLoop nodes that include declarations.
+// Replacements already present in variableMap are preserved.
+void GetDeclaratorReplacements(TSymbolTable *symbolTable,
+ TIntermBlock *root,
+ VariableReplacementMap *variableMap);
+
+} // namespace sh
+
+#endif // COMPILER_TRANSLATOR_TREEUTIL_REPLACEVARIABLE_H_
diff --git a/gfx/angle/checkout/src/compiler/translator/tree_util/RewriteSampleMaskVariable.cpp b/gfx/angle/checkout/src/compiler/translator/tree_util/RewriteSampleMaskVariable.cpp
new file mode 100644
index 0000000000..a81d230492
--- /dev/null
+++ b/gfx/angle/checkout/src/compiler/translator/tree_util/RewriteSampleMaskVariable.cpp
@@ -0,0 +1,198 @@
+//
+// Copyright 2020 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.
+//
+// RewriteSampleMaskVariable.cpp: Find any references to gl_SampleMask and gl_SampleMaskIn, and
+// rewrite it with ANGLESampleMask or ANGLESampleMaskIn.
+//
+
+#include "compiler/translator/tree_util/RewriteSampleMaskVariable.h"
+
+#include "common/bitset_utils.h"
+#include "common/debug.h"
+#include "common/utilities.h"
+#include "compiler/translator/Compiler.h"
+#include "compiler/translator/SymbolTable.h"
+#include "compiler/translator/tree_util/BuiltIn.h"
+#include "compiler/translator/tree_util/IntermNode_util.h"
+#include "compiler/translator/tree_util/IntermTraverse.h"
+#include "compiler/translator/tree_util/RunAtTheEndOfShader.h"
+
+namespace sh
+{
+namespace
+{
+constexpr int kMaxIndexForSampleMaskVar = 0;
+constexpr int kFullSampleMask = 0xFFFFFFFF;
+
+// Traverse the tree and collect the redeclaration and replace all non constant index references of
+// gl_SampleMask or gl_SampleMaskIn with constant index references
+class GLSampleMaskRelatedReferenceTraverser : public TIntermTraverser
+{
+ public:
+ GLSampleMaskRelatedReferenceTraverser(const TIntermSymbol **redeclaredSymOut,
+ const ImmutableString &targetStr)
+ : TIntermTraverser(true, false, false),
+ mRedeclaredSym(redeclaredSymOut),
+ mTargetStr(targetStr)
+ {
+ *mRedeclaredSym = nullptr;
+ }
+
+ bool visitDeclaration(Visit visit, TIntermDeclaration *node) override
+ {
+ // If gl_SampleMask is redeclared, we need to collect its information
+ const TIntermSequence &sequence = *(node->getSequence());
+
+ if (sequence.size() != 1)
+ {
+ return true;
+ }
+
+ TIntermTyped *variable = sequence.front()->getAsTyped();
+ TIntermSymbol *symbol = variable->getAsSymbolNode();
+ if (symbol == nullptr || symbol->getName() != mTargetStr)
+ {
+ return true;
+ }
+
+ *mRedeclaredSym = symbol;
+
+ return true;
+ }
+
+ bool visitBinary(Visit visit, TIntermBinary *node) override
+ {
+ TOperator op = node->getOp();
+ if (op != EOpIndexDirect && op != EOpIndexIndirect)
+ {
+ return true;
+ }
+ TIntermSymbol *left = node->getLeft()->getAsSymbolNode();
+ if (!left)
+ {
+ return true;
+ }
+ if (left->getName() != mTargetStr)
+ {
+ return true;
+ }
+ const TConstantUnion *constIdx = node->getRight()->getConstantValue();
+ if (!constIdx)
+ {
+ if (node->getRight()->hasSideEffects())
+ {
+ insertStatementInParentBlock(node->getRight());
+ }
+
+ queueReplacementWithParent(node, node->getRight(),
+ CreateIndexNode(kMaxIndexForSampleMaskVar),
+ OriginalNode::IS_DROPPED);
+ }
+
+ return true;
+ }
+
+ private:
+ const TIntermSymbol **mRedeclaredSym;
+ const ImmutableString mTargetStr;
+};
+
+} // anonymous namespace
+
+[[nodiscard]] bool RewriteSampleMask(TCompiler *compiler,
+ TIntermBlock *root,
+ TSymbolTable *symbolTable,
+ const TIntermTyped *numSamplesUniform)
+{
+ const TIntermSymbol *redeclaredGLSampleMask = nullptr;
+ GLSampleMaskRelatedReferenceTraverser indexTraverser(&redeclaredGLSampleMask,
+ ImmutableString("gl_SampleMask"));
+
+ root->traverse(&indexTraverser);
+ if (!indexTraverser.updateTree(compiler, root))
+ {
+ return false;
+ }
+
+ // Retrieve gl_SampleMask variable reference
+ // Search user redeclared it first
+ const TVariable *glSampleMaskVar = nullptr;
+ if (redeclaredGLSampleMask)
+ {
+ glSampleMaskVar = &redeclaredGLSampleMask->variable();
+ }
+ else
+ {
+ // User defined not found, find in built-in table
+ glSampleMaskVar = static_cast<const TVariable *>(symbolTable->findBuiltIn(
+ ImmutableString("gl_SampleMask"), compiler->getShaderVersion()));
+ }
+ if (!glSampleMaskVar)
+ {
+ return false;
+ }
+
+ // Current ANGLE assumes that the maximum number of samples is less than or equal to
+ // VK_SAMPLE_COUNT_32_BIT. So, the size of gl_SampleMask array is always one.
+ const unsigned int arraySizeOfSampleMask = glSampleMaskVar->getType().getOutermostArraySize();
+ ASSERT(arraySizeOfSampleMask == 1);
+
+ TIntermSymbol *glSampleMaskSymbol = new TIntermSymbol(glSampleMaskVar);
+
+ // if (ANGLEUniforms.numSamples == 1)
+ // {
+ // gl_SampleMask[0] = int(0xFFFFFFFF);
+ // }
+ TIntermConstantUnion *singleSampleCount = CreateUIntNode(1);
+ TIntermBinary *equalTo =
+ new TIntermBinary(EOpEqual, numSamplesUniform->deepCopy(), singleSampleCount);
+
+ TIntermBlock *trueBlock = new TIntermBlock();
+
+ TIntermBinary *sampleMaskVar = new TIntermBinary(EOpIndexDirect, glSampleMaskSymbol->deepCopy(),
+ CreateIndexNode(kMaxIndexForSampleMaskVar));
+ TIntermConstantUnion *fullSampleMask = CreateIndexNode(kFullSampleMask);
+ TIntermBinary *assignment = new TIntermBinary(EOpAssign, sampleMaskVar, fullSampleMask);
+
+ trueBlock->appendStatement(assignment);
+
+ TIntermIfElse *multiSampleOrNot = new TIntermIfElse(equalTo, trueBlock, nullptr);
+
+ return RunAtTheEndOfShader(compiler, root, multiSampleOrNot, symbolTable);
+}
+
+[[nodiscard]] bool RewriteSampleMaskIn(TCompiler *compiler,
+ TIntermBlock *root,
+ TSymbolTable *symbolTable)
+{
+ const TIntermSymbol *redeclaredGLSampleMaskIn = nullptr;
+ GLSampleMaskRelatedReferenceTraverser indexTraverser(&redeclaredGLSampleMaskIn,
+ ImmutableString("gl_SampleMaskIn"));
+
+ root->traverse(&indexTraverser);
+ if (!indexTraverser.updateTree(compiler, root))
+ {
+ return false;
+ }
+
+ // Retrieve gl_SampleMaskIn variable reference
+ const TVariable *glSampleMaskInVar = nullptr;
+ glSampleMaskInVar = static_cast<const TVariable *>(
+ symbolTable->findBuiltIn(ImmutableString("gl_SampleMaskIn"), compiler->getShaderVersion()));
+ if (!glSampleMaskInVar)
+ {
+ return false;
+ }
+
+ // Current ANGLE assumes that the maximum number of samples is less than or equal to
+ // VK_SAMPLE_COUNT_32_BIT. So, the size of gl_SampleMask array is always one.
+ const unsigned int arraySizeOfSampleMaskIn =
+ glSampleMaskInVar->getType().getOutermostArraySize();
+ ASSERT(arraySizeOfSampleMaskIn == 1);
+
+ return true;
+}
+
+} // namespace sh
diff --git a/gfx/angle/checkout/src/compiler/translator/tree_util/RewriteSampleMaskVariable.h b/gfx/angle/checkout/src/compiler/translator/tree_util/RewriteSampleMaskVariable.h
new file mode 100644
index 0000000000..20f19313b2
--- /dev/null
+++ b/gfx/angle/checkout/src/compiler/translator/tree_util/RewriteSampleMaskVariable.h
@@ -0,0 +1,38 @@
+//
+// Copyright 2020 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.
+//
+// RewriteSampleMaskVariable.cpp: Find any references to gl_SampleMask and gl_SampleMaskIn, and
+// rewrite it with ANGLESampleMask or ANGLESampleMaskIn.
+//
+
+#ifndef COMPILER_TRANSLATOR_TREEUTIL_REWRITESAMPLEMASKVARIABLE_H_
+#define COMPILER_TRANSLATOR_TREEUTIL_REWRITESAMPLEMASKVARIABLE_H_
+
+#include "common/angleutils.h"
+
+namespace sh
+{
+
+class TCompiler;
+class TIntermBlock;
+class TSymbolTable;
+class TIntermTyped;
+
+// Rewrite every gl_SampleMask or gl_SampleMaskIn to "ANGLESampleMask" or "ANGLESampleMaskIn", then
+// at the end of shader re-assign the values of this global variable to gl_SampleMask and
+// gl_SampleMaskIn. This to solve the problem which the non constant index is used for the unsized
+// array problem.
+[[nodiscard]] bool RewriteSampleMask(TCompiler *compiler,
+ TIntermBlock *root,
+ TSymbolTable *symbolTable,
+ const TIntermTyped *numSamplesUniform);
+
+[[nodiscard]] bool RewriteSampleMaskIn(TCompiler *compiler,
+ TIntermBlock *root,
+ TSymbolTable *symbolTable);
+
+} // namespace sh
+
+#endif // COMPILER_TRANSLATOR_TREEUTIL_REWRITESAMPLEMASKVARIABLE_H_
diff --git a/gfx/angle/checkout/src/compiler/translator/tree_util/RunAtTheBeginningOfShader.cpp b/gfx/angle/checkout/src/compiler/translator/tree_util/RunAtTheBeginningOfShader.cpp
new file mode 100644
index 0000000000..99be6add13
--- /dev/null
+++ b/gfx/angle/checkout/src/compiler/translator/tree_util/RunAtTheBeginningOfShader.cpp
@@ -0,0 +1,35 @@
+//
+// Copyright 2020 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.
+//
+// RunAtTheBeginningOfShader.cpp: Add code to be run at the beginning of the shader.
+// void main() { body }
+// =>
+// void main()
+// {
+// codeToRun
+// body
+// }
+//
+
+#include "compiler/translator/tree_util/RunAtTheBeginningOfShader.h"
+
+#include "compiler/translator/Compiler.h"
+#include "compiler/translator/IntermNode.h"
+#include "compiler/translator/SymbolTable.h"
+#include "compiler/translator/tree_util/FindMain.h"
+#include "compiler/translator/tree_util/IntermNode_util.h"
+#include "compiler/translator/tree_util/IntermTraverse.h"
+
+namespace sh
+{
+
+bool RunAtTheBeginningOfShader(TCompiler *compiler, TIntermBlock *root, TIntermNode *codeToRun)
+{
+ TIntermFunctionDefinition *main = FindMain(root);
+ main->getBody()->insertStatement(0, codeToRun);
+ return compiler->validateAST(root);
+}
+
+} // namespace sh
diff --git a/gfx/angle/checkout/src/compiler/translator/tree_util/RunAtTheBeginningOfShader.h b/gfx/angle/checkout/src/compiler/translator/tree_util/RunAtTheBeginningOfShader.h
new file mode 100644
index 0000000000..23ed9f9372
--- /dev/null
+++ b/gfx/angle/checkout/src/compiler/translator/tree_util/RunAtTheBeginningOfShader.h
@@ -0,0 +1,27 @@
+//
+// Copyright 2020 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.
+//
+// RunAtTheBeginningOfShader.h: Add code to be run at the beginning of the shader.
+//
+
+#ifndef COMPILER_TRANSLATOR_TREEUTIL_RUNATTHEBEGINNINGOFSHADER_H_
+#define COMPILER_TRANSLATOR_TREEUTIL_RUNATTHEBEGINNINGOFSHADER_H_
+
+#include "common/angleutils.h"
+
+namespace sh
+{
+
+class TCompiler;
+class TIntermBlock;
+class TIntermNode;
+
+[[nodiscard]] bool RunAtTheBeginningOfShader(TCompiler *compiler,
+ TIntermBlock *root,
+ TIntermNode *codeToRun);
+
+} // namespace sh
+
+#endif // COMPILER_TRANSLATOR_TREEUTIL_RUNATTHEBEGINNINGOFSHADER_H_
diff --git a/gfx/angle/checkout/src/compiler/translator/tree_util/RunAtTheEndOfShader.cpp b/gfx/angle/checkout/src/compiler/translator/tree_util/RunAtTheEndOfShader.cpp
new file mode 100644
index 0000000000..daf99185ab
--- /dev/null
+++ b/gfx/angle/checkout/src/compiler/translator/tree_util/RunAtTheEndOfShader.cpp
@@ -0,0 +1,129 @@
+//
+// Copyright 2017 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.
+//
+// RunAtTheEndOfShader.cpp: Add code to be run at the end of the shader. In case main() contains a
+// return statement, this is done by replacing the main() function with another function that calls
+// the old main, like this:
+//
+// void main() { body }
+// =>
+// void main0() { body }
+// void main()
+// {
+// main0();
+// codeToRun
+// }
+//
+// This way the code will get run even if the return statement inside main is executed.
+//
+// This is done if main ends in an unconditional |discard| as well, to help with SPIR-V generation
+// that expects no dead-code to be present after branches in a block. To avoid bugs when |discard|
+// is wrapped in unconditional blocks, any |discard| in main() is used as a signal to wrap it.
+//
+
+#include "compiler/translator/tree_util/RunAtTheEndOfShader.h"
+
+#include "compiler/translator/Compiler.h"
+#include "compiler/translator/IntermNode.h"
+#include "compiler/translator/StaticType.h"
+#include "compiler/translator/SymbolTable.h"
+#include "compiler/translator/tree_util/FindMain.h"
+#include "compiler/translator/tree_util/IntermNode_util.h"
+#include "compiler/translator/tree_util/IntermTraverse.h"
+
+namespace sh
+{
+
+namespace
+{
+
+constexpr const ImmutableString kMainString("main");
+
+class ContainsReturnOrDiscardTraverser : public TIntermTraverser
+{
+ public:
+ ContainsReturnOrDiscardTraverser()
+ : TIntermTraverser(true, false, false), mContainsReturnOrDiscard(false)
+ {}
+
+ bool visitBranch(Visit visit, TIntermBranch *node) override
+ {
+ if (node->getFlowOp() == EOpReturn || node->getFlowOp() == EOpKill)
+ {
+ mContainsReturnOrDiscard = true;
+ }
+ return false;
+ }
+
+ bool containsReturnOrDiscard() { return mContainsReturnOrDiscard; }
+
+ private:
+ bool mContainsReturnOrDiscard;
+};
+
+bool ContainsReturnOrDiscard(TIntermNode *node)
+{
+ ContainsReturnOrDiscardTraverser traverser;
+ node->traverse(&traverser);
+ return traverser.containsReturnOrDiscard();
+}
+
+void WrapMainAndAppend(TIntermBlock *root,
+ TIntermFunctionDefinition *main,
+ TIntermNode *codeToRun,
+ TSymbolTable *symbolTable)
+{
+ // Replace main() with main0() with the same body.
+ TFunction *oldMain =
+ new TFunction(symbolTable, kEmptyImmutableString, SymbolType::AngleInternal,
+ StaticType::GetBasic<EbtVoid, EbpUndefined>(), false);
+ TIntermFunctionDefinition *oldMainDefinition =
+ CreateInternalFunctionDefinitionNode(*oldMain, main->getBody());
+
+ bool replaced = root->replaceChildNode(main, oldMainDefinition);
+ ASSERT(replaced);
+
+ // void main()
+ TFunction *newMain = new TFunction(symbolTable, kMainString, SymbolType::UserDefined,
+ StaticType::GetBasic<EbtVoid, EbpUndefined>(), false);
+ TIntermFunctionPrototype *newMainProto = new TIntermFunctionPrototype(newMain);
+
+ // {
+ // main0();
+ // codeToRun
+ // }
+ TIntermBlock *newMainBody = new TIntermBlock();
+ TIntermSequence emptySequence;
+ TIntermAggregate *oldMainCall = TIntermAggregate::CreateFunctionCall(*oldMain, &emptySequence);
+ newMainBody->appendStatement(oldMainCall);
+ newMainBody->appendStatement(codeToRun);
+
+ // Add the new main() to the root node.
+ TIntermFunctionDefinition *newMainDefinition =
+ new TIntermFunctionDefinition(newMainProto, newMainBody);
+ root->appendStatement(newMainDefinition);
+}
+
+} // anonymous namespace
+
+bool RunAtTheEndOfShader(TCompiler *compiler,
+ TIntermBlock *root,
+ TIntermNode *codeToRun,
+ TSymbolTable *symbolTable)
+{
+ TIntermFunctionDefinition *main = FindMain(root);
+ if (ContainsReturnOrDiscard(main))
+ {
+ WrapMainAndAppend(root, main, codeToRun, symbolTable);
+ }
+ else
+ {
+ main->getBody()->appendStatement(codeToRun);
+ }
+
+ return compiler->validateAST(root);
+}
+
+} // namespace sh
diff --git a/gfx/angle/checkout/src/compiler/translator/tree_util/RunAtTheEndOfShader.h b/gfx/angle/checkout/src/compiler/translator/tree_util/RunAtTheEndOfShader.h
new file mode 100644
index 0000000000..cfa5fb1fab
--- /dev/null
+++ b/gfx/angle/checkout/src/compiler/translator/tree_util/RunAtTheEndOfShader.h
@@ -0,0 +1,29 @@
+//
+// Copyright 2017 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.
+//
+// RunAtTheEndOfShader.h: Add code to be run at the end of the shader.
+//
+
+#ifndef COMPILER_TRANSLATOR_TREEUTIL_RUNATTHEENDOFSHADER_H_
+#define COMPILER_TRANSLATOR_TREEUTIL_RUNATTHEENDOFSHADER_H_
+
+#include "common/angleutils.h"
+
+namespace sh
+{
+
+class TCompiler;
+class TIntermBlock;
+class TIntermNode;
+class TSymbolTable;
+
+[[nodiscard]] bool RunAtTheEndOfShader(TCompiler *compiler,
+ TIntermBlock *root,
+ TIntermNode *codeToRun,
+ TSymbolTable *symbolTable);
+
+} // namespace sh
+
+#endif // COMPILER_TRANSLATOR_TREEUTIL_RUNATTHEENDOFSHADER_H_
diff --git a/gfx/angle/checkout/src/compiler/translator/tree_util/SpecializationConstant.cpp b/gfx/angle/checkout/src/compiler/translator/tree_util/SpecializationConstant.cpp
new file mode 100644
index 0000000000..6a7254802c
--- /dev/null
+++ b/gfx/angle/checkout/src/compiler/translator/tree_util/SpecializationConstant.cpp
@@ -0,0 +1,122 @@
+//
+// Copyright 2020 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.
+//
+// SpecializationConst.cpp: Add code to generate AST node for various specialization constants.
+//
+
+#include "compiler/translator/tree_util/SpecializationConstant.h"
+#include "common/PackedEnums.h"
+#include "common/angleutils.h"
+#include "compiler/translator/StaticType.h"
+#include "compiler/translator/SymbolTable.h"
+#include "compiler/translator/tree_util/IntermNode_util.h"
+
+namespace sh
+{
+
+namespace
+{
+// Specialization constant names
+constexpr ImmutableString kSurfaceRotationSpecConstVarName =
+ ImmutableString("ANGLESurfaceRotation");
+constexpr ImmutableString kDitherSpecConstVarName = ImmutableString("ANGLEDither");
+
+const TType *MakeSpecConst(const TType &type, vk::SpecializationConstantId id)
+{
+ // Create a new type with the EvqSpecConst qualifier
+ TType *specConstType = new TType(type);
+ specConstType->setQualifier(EvqSpecConst);
+
+ // Set the constant_id of the spec const
+ TLayoutQualifier layoutQualifier = TLayoutQualifier::Create();
+ layoutQualifier.location = static_cast<int>(id);
+ specConstType->setLayoutQualifier(layoutQualifier);
+
+ return specConstType;
+}
+} // anonymous namespace
+
+SpecConst::SpecConst(TSymbolTable *symbolTable,
+ const ShCompileOptions &compileOptions,
+ GLenum shaderType)
+ : mSymbolTable(symbolTable),
+ mCompileOptions(compileOptions),
+ mSurfaceRotationVar(nullptr),
+ mDitherVar(nullptr)
+{
+ if (shaderType == GL_FRAGMENT_SHADER || shaderType == GL_COMPUTE_SHADER)
+ {
+ return;
+ }
+
+ // Mark SpecConstUsage::Rotation unconditionally. gl_Position is always rotated.
+ if (mCompileOptions.useSpecializationConstant)
+ {
+ mUsageBits.set(vk::SpecConstUsage::Rotation);
+ }
+}
+
+SpecConst::~SpecConst() {}
+
+void SpecConst::declareSpecConsts(TIntermBlock *root)
+{
+ // Add specialization constant declarations. The default value of the specialization
+ // constant is irrelevant, as it will be set when creating the pipeline.
+ // Only emit specialized const declaration if it has been referenced.
+ if (mSurfaceRotationVar != nullptr)
+ {
+ TIntermDeclaration *decl = new TIntermDeclaration();
+ decl->appendDeclarator(
+ new TIntermBinary(EOpInitialize, getRotation(), CreateBoolNode(false)));
+
+ root->insertStatement(0, decl);
+ }
+
+ if (mDitherVar != nullptr)
+ {
+ TIntermDeclaration *decl = new TIntermDeclaration();
+ decl->appendDeclarator(new TIntermBinary(EOpInitialize, getDither(), CreateUIntNode(0)));
+
+ root->insertStatement(0, decl);
+ }
+}
+
+TIntermSymbol *SpecConst::getRotation()
+{
+ if (mSurfaceRotationVar == nullptr)
+ {
+ const TType *type = MakeSpecConst(*StaticType::GetBasic<EbtBool, EbpUndefined>(),
+ vk::SpecializationConstantId::SurfaceRotation);
+
+ mSurfaceRotationVar = new TVariable(mSymbolTable, kSurfaceRotationSpecConstVarName, type,
+ SymbolType::AngleInternal);
+ }
+ return new TIntermSymbol(mSurfaceRotationVar);
+}
+
+TIntermTyped *SpecConst::getSwapXY()
+{
+ if (!mCompileOptions.useSpecializationConstant)
+ {
+ return nullptr;
+ }
+ mUsageBits.set(vk::SpecConstUsage::Rotation);
+ return getRotation();
+}
+
+TIntermTyped *SpecConst::getDither()
+{
+ if (mDitherVar == nullptr)
+ {
+ const TType *type = MakeSpecConst(*StaticType::GetBasic<EbtUInt, EbpHigh>(),
+ vk::SpecializationConstantId::Dither);
+
+ mDitherVar =
+ new TVariable(mSymbolTable, kDitherSpecConstVarName, type, SymbolType::AngleInternal);
+ mUsageBits.set(vk::SpecConstUsage::Dither);
+ }
+ return new TIntermSymbol(mDitherVar);
+}
+} // namespace sh
diff --git a/gfx/angle/checkout/src/compiler/translator/tree_util/SpecializationConstant.h b/gfx/angle/checkout/src/compiler/translator/tree_util/SpecializationConstant.h
new file mode 100644
index 0000000000..6644706567
--- /dev/null
+++ b/gfx/angle/checkout/src/compiler/translator/tree_util/SpecializationConstant.h
@@ -0,0 +1,55 @@
+//
+// Copyright 2020 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.
+//
+// SpecializationConst.h: Add code to generate AST node for specialization constant.
+//
+
+#ifndef COMPILER_TRANSLATOR_TREEUTIL_SPECIALIZATIONCONSTANT_H_
+#define COMPILER_TRANSLATOR_TREEUTIL_SPECIALIZATIONCONSTANT_H_
+
+#include "common/angleutils.h"
+#include "compiler/translator/Compiler.h"
+#include "compiler/translator/SymbolTable.h"
+
+class TIntermBlock;
+class TIntermTyped;
+class TIntermSymbol;
+class TVariable;
+
+namespace sh
+{
+
+class SpecConst
+{
+ public:
+ SpecConst(TSymbolTable *symbolTable, const ShCompileOptions &compileOptions, GLenum shaderType);
+ virtual ~SpecConst();
+
+ // Flip/rotation
+ // Returns a boolean: should X and Y be swapped?
+ TIntermTyped *getSwapXY();
+
+ // Dither emulation
+ TIntermTyped *getDither();
+
+ void declareSpecConsts(TIntermBlock *root);
+ SpecConstUsageBits getSpecConstUsageBits() const { return mUsageBits; }
+
+ private:
+ TIntermSymbol *getRotation();
+
+ // If unsupported, this should be set to null.
+ TSymbolTable *mSymbolTable;
+ const ShCompileOptions &mCompileOptions;
+
+ TVariable *mSurfaceRotationVar;
+ TVariable *mDitherVar;
+
+ // Bit is set if YFlip or Rotation has been used
+ SpecConstUsageBits mUsageBits;
+};
+} // namespace sh
+
+#endif // COMPILER_TRANSLATOR_TREEUTIL_SPECIALIZATIONCONSTANT_H_
diff --git a/gfx/angle/checkout/src/compiler/translator/tree_util/Visit.h b/gfx/angle/checkout/src/compiler/translator/tree_util/Visit.h
new file mode 100644
index 0000000000..36a8f14a52
--- /dev/null
+++ b/gfx/angle/checkout/src/compiler/translator/tree_util/Visit.h
@@ -0,0 +1,22 @@
+//
+// 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.
+//
+
+#ifndef COMPILER_TRANSLATOR_TREEUTIL_VISIT_H_
+#define COMPILER_TRANSLATOR_TREEUTIL_VISIT_H_
+
+namespace sh
+{
+
+enum Visit
+{
+ PreVisit,
+ InVisit,
+ PostVisit
+};
+
+} // namespace sh
+
+#endif // COMPILER_TRANSLATOR_TREEUTIL_VISIT_H_