diff options
Diffstat (limited to 'gfx/angle/checkout/src/compiler/translator/tree_util')
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_ |