// The format of this file:
//   C++ style single-line comments are supported.
//   Leading whitespace is only for formatting and doesn't have semantic meaning.
//
//   Grouping:
//   Groups of functions are denoted by "GROUP BEGIN" and "GROUP END". Groups can be nested.
//   Groups can have metadata related to the group itself. This is given at the end of the GROUP
//   BEGIN line in JSON object format.
//   Example:
//     GROUP BEGIN <group name> {"shader_type": "FRAGMENT"}
//     GROUP END <group name>
//
//   Defaults:
//   Default metadata for functions can be set with "DEFAULT METADATA" followed by metadata in JSON
//   object format. The metadata is applied to all following functions regardless of grouping until
//   another "DEFAULT METADATA" line is encountered, or until the end of a top-level group.
//   Example:
//     DEFAULT METADATA {"op": "CallBuiltInFunction"}
//
//   Supported function metadata properties are:
//     "essl_level"
//         string, one of COMMON_BUILTINS, ESSL1_BUILTINS, ESSL3_BUILTINS and ESSL3_1_BUILTINS.
//     "glsl_level"
//         string, one of COMMON_BUILTINS, COMMON_BUILTINS, GLSL1_2_BUILTINS, GLSL1_3_BUILTINS,
//         GLSL1_4_BUILTINS, GLSL1_5_BUILTINS, GLSL3_3_BUILTINS, GLSL4_BUILTINS, GLSL4_1_BUILTINS,
//         GLSL4_2_BUILTINS, GLSL4_3_BUILTINS, GLSL4_4_BUILTINS, GLSL4_5_BUILTINS, and
//         GLSL4_6_BUILTINS.
//     "op"
//         string, either EOp code or "auto", in which case the op is derived from the function
//         name.
//     "suffix"
//         string, suffix that is used to disambiguate C++ variable names created based on the
//         function name from C++ keywords, or disambiguate two functions with the same name.
//     "essl_extension"
//         string, ESSL extension where the function is defined.
//     "glsl_extension"
//         string, GLSL extension where the function is defined.
//     "hasSideEffects"
//         boolean, can be used to mark a function as having side effects even if it has op other
//         than CallBuiltInFunction and it doesn't have out parameters. In case the op is
//         CallBuiltInFunction or the function has out parameters it is automatically treated as
//         having side effects.
//
//   Function declarations:
//   Lines that declare functions are in a similar format as in the GLSL spec:
//     <return type> <function name>(<param type>, ...);
//   Parameter types can have "out" or "inout" qualifiers.

GROUP BEGIN Trigonometric
  DEFAULT METADATA {"essl_level": "COMMON_BUILTINS", "glsl_level": "COMMON_BUILTINS", "op": "auto"}
    genType radians(genType);
    genType degrees(genType);
    genType sin(genType);
    genType cos(genType);
    genType tan(genType);
    genType asin(genType);
    genType acos(genType);
    genType atan(genType, genType);
    genType atan(genType);
  DEFAULT METADATA {"essl_level": "ESSL3_BUILTINS", "glsl_level": "GLSL1_3_BUILTINS", "op": "auto"}
    genType sinh(genType);
    genType cosh(genType);
    genType tanh(genType);
    genType asinh(genType);
    genType acosh(genType);
    genType atanh(genType);
GROUP END Trigonometric

GROUP BEGIN Exponential
  DEFAULT METADATA {"essl_level": "COMMON_BUILTINS", "glsl_level": "COMMON_BUILTINS", "op": "auto"}
    genType pow(genType, genType);
    genType exp(genType);
    genType log(genType);
    genType exp2(genType);
    genType log2(genType);
    genType sqrt(genType);
  DEFAULT METADATA {"glsl_level": "GLSL4_BUILTINS", "op": "auto"}
    genDType sqrt(genDType);
  DEFAULT METADATA {"essl_level": "COMMON_BUILTINS", "glsl_level": "COMMON_BUILTINS", "op": "auto"}
    genType inversesqrt(genType);
  DEFAULT METADATA {"glsl_level": "GLSL4_BUILTINS", "op": "auto"}
    genDType inversesqrt(genDType);
GROUP END Exponential

GROUP BEGIN Common
  DEFAULT METADATA {"essl_level": "COMMON_BUILTINS", "glsl_level": "COMMON_BUILTINS", "op": "auto"}
    genType abs(genType);
  DEFAULT METADATA {"essl_level": "ESSL3_BUILTINS", "glsl_level": "GLSL1_3_BUILTINS", "op": "auto"}
    genIType abs(genIType);
  DEFAULT METADATA {"glsl_level": "GLSL4_BUILTINS", "op": "auto"}
    genDType abs(genDType);
  DEFAULT METADATA {"essl_level": "COMMON_BUILTINS", "glsl_level": "COMMON_BUILTINS", "op": "auto"}
    genType sign(genType);
  DEFAULT METADATA {"essl_level": "ESSL3_BUILTINS", "glsl_level": "GLSL1_3_BUILTINS", "op": "auto"}
    genIType sign(genIType);
  DEFAULT METADATA {"glsl_level": "GLSL4_BUILTINS", "op": "auto"}
    genDType sign(genDType);
  DEFAULT METADATA {"essl_level": "COMMON_BUILTINS", "glsl_level": "COMMON_BUILTINS", "op": "auto"}
    genType floor(genType);
  DEFAULT METADATA {"glsl_level": "GLSL4_BUILTINS", "op": "auto"}
    genDType floor(genDType);
  DEFAULT METADATA {"essl_level": "ESSL3_BUILTINS", "glsl_level": "GLSL1_3_BUILTINS", "op": "auto"}
    genType trunc(genType);
  DEFAULT METADATA {"glsl_level": "GLSL4_BUILTINS", "op": "auto"}
    genDType trunc(genDType);
  DEFAULT METADATA {"essl_level": "ESSL3_BUILTINS", "glsl_level": "GLSL1_3_BUILTINS", "op": "auto"}
    genType round(genType);
  DEFAULT METADATA {"glsl_level": "GLSL4_BUILTINS", "op": "auto"}
    genDType round(genDType);
  DEFAULT METADATA {"essl_level": "ESSL3_BUILTINS", "glsl_level": "GLSL1_3_BUILTINS", "op": "auto"}
    genType roundEven(genType);
  DEFAULT METADATA {"glsl_level": "GLSL4_BUILTINS", "op": "auto"}
    genDType roundEven(genDType);
  DEFAULT METADATA {"essl_level": "COMMON_BUILTINS", "glsl_level": "COMMON_BUILTINS", "op": "auto"}
    genType ceil(genType);
  DEFAULT METADATA {"glsl_level": "GLSL4_BUILTINS", "op": "auto"}
    genDType ceil(genDType);
  DEFAULT METADATA {"essl_level": "COMMON_BUILTINS", "glsl_level": "COMMON_BUILTINS", "op": "auto"}
    genType fract(genType);
  DEFAULT METADATA {"glsl_level": "GLSL4_BUILTINS", "op": "auto"}
    genDType fract(genDType);
  DEFAULT METADATA {"essl_level": "COMMON_BUILTINS", "glsl_level": "COMMON_BUILTINS", "op": "auto"}
    genType mod(genType, float);
    genType mod(genType, genType);
  DEFAULT METADATA {"glsl_level": "GLSL4_BUILTINS", "op": "auto"}
    genDType mod(genDType, double);
    genDType mod(genDType, genDType);
  DEFAULT METADATA {"essl_level": "COMMON_BUILTINS", "glsl_level": "COMMON_BUILTINS", "op": "auto"}
    genType min(genType, float);
    genType min(genType, genType);
  DEFAULT METADATA {"glsl_level": "GLSL4_BUILTINS", "op": "auto"}
    genDType min(genDType, genDType);
    genDType min(genDType, double);
  DEFAULT METADATA {"essl_level": "ESSL3_BUILTINS", "glsl_level": "GLSL1_3_BUILTINS", "op": "auto"}
    genIType min(genIType, genIType);
    genIType min(genIType, int);
    genUType min(genUType, genUType);
    genUType min(genUType, uint);
  DEFAULT METADATA {"essl_level": "COMMON_BUILTINS", "glsl_level": "COMMON_BUILTINS", "op": "auto"}
    genType max(genType, float);
    genType max(genType, genType);
  DEFAULT METADATA {"glsl_level": "GLSL4_BUILTINS", "op": "auto"}
    genDType max(genDType, genDType);
    genDType max(genDType, double);
  DEFAULT METADATA {"essl_level": "ESSL3_BUILTINS", "glsl_level": "GLSL1_3_BUILTINS", "op": "auto"}
    genIType max(genIType, genIType);
    genIType max(genIType, int);
    genUType max(genUType, genUType);
    genUType max(genUType, uint);
  DEFAULT METADATA {"essl_level": "COMMON_BUILTINS", "glsl_level": "COMMON_BUILTINS", "op": "auto"}
    genType clamp(genType, float, float);
    genType clamp(genType, genType, genType);
  DEFAULT METADATA {"glsl_level": "GLSL4_BUILTINS", "op": "auto"}
    genDType clamp(genDType, double, double);
    genDType clamp(genDType, genDType, genDType);
  DEFAULT METADATA {"essl_level": "ESSL3_BUILTINS", "glsl_level": "GLSL1_3_BUILTINS", "op": "auto"}
    genIType clamp(genIType, int, int);
    genIType clamp(genIType, genIType, genIType);
    genUType clamp(genUType, uint, uint);
    genUType clamp(genUType, genUType, genUType);
  DEFAULT METADATA {"essl_level": "COMMON_BUILTINS", "glsl_level": "COMMON_BUILTINS", "op": "auto"}
    genType mix(genType, genType, float);
    genType mix(genType, genType, genType);
  DEFAULT METADATA {"glsl_level": "GLSL4_BUILTINS", "op": "auto"}
    genDType mix(genDType, genDType, double);
    genDType mix(genDType, genDType, genDType);
  DEFAULT METADATA {"essl_level": "ESSL3_BUILTINS", "glsl_level": "GLSL1_3_BUILTINS", "op": "auto"}
    genType mix(genType, genType, genBType);
  DEFAULT METADATA {"glsl_level": "GLSL4_BUILTINS", "op": "auto"}
    genDType mix(genDType, genDType, genBType);
  DEFAULT METADATA {"glsl_level": "GLSL4_5_BUILTINS", "op": "auto"}
    genIType mix(genIType, genIType, genBType);
    genUType mix(genUType, genUType, genBType);
    genBType mix(genBType, genBType, genBType);
  DEFAULT METADATA {"essl_level": "COMMON_BUILTINS", "glsl_level": "COMMON_BUILTINS", "op": "auto"}
    genType step(genType, genType);
    genType step(float, genType);
  DEFAULT METADATA {"glsl_level": "GLSL4_BUILTINS", "op": "auto"}
    genDType step(genDType, genDType);
    genDType step(double, genDType);
  DEFAULT METADATA {"glsl_level": "GLSL4_BUILTINS", "op": "auto"}
    genDType smoothstep(genDType, genDType, genDType);
    genDType smoothstep(double, double, genDType);
  DEFAULT METADATA {"essl_level": "COMMON_BUILTINS", "glsl_level": "COMMON_BUILTINS", "op": "auto"}
    genType smoothstep(genType, genType, genType);
    genType smoothstep(float, float, genType);
  DEFAULT METADATA {"essl_level": "ESSL3_BUILTINS", "glsl_level": "GLSL1_3_BUILTINS", "op": "auto"}
    genType modf(genType, out genType);
  DEFAULT METADATA {"glsl_level": "GLSL4_BUILTINS", "op": "auto"}
    genDType modf(genDType, out genDType);
  DEFAULT METADATA {"essl_level": "ESSL3_BUILTINS", "glsl_level": "GLSL1_3_BUILTINS", "op": "auto"}
    genBType isnan(genType);
  DEFAULT METADATA {"glsl_level": "GLSL4_BUILTINS", "op": "auto"}
    genBType isnan(genDType);
  DEFAULT METADATA {"essl_level": "ESSL3_BUILTINS", "glsl_level": "GLSL1_3_BUILTINS", "op": "auto"}
    genBType isinf(genType);
  DEFAULT METADATA {"glsl_level": "GLSL4_BUILTINS", "op": "auto"}
    genBType isinf(genDType);
  DEFAULT METADATA {"essl_level": "ESSL3_BUILTINS", "glsl_level": "GLSL3_3_BUILTINS", "op": "auto"}
    genIType floatBitsToInt(genType);
    genUType floatBitsToUint(genType);
    genType intBitsToFloat(genIType);
    genType uintBitsToFloat(genUType);
  DEFAULT METADATA {"glsl_level": "GLSL4_BUILTINS", "op": "auto"}
    genType fma(genType, genType, genType);
    genType fma(genDType, genDType, genDType);
  DEFAULT METADATA {"essl_level": "ESSL3_1_BUILTINS", "glsl_level": "GLSL4_BUILTINS", "op": "auto"}
    genType frexp(genType, out genIType);
  DEFAULT METADATA {"glsl_level": "GLSL4_BUILTINS", "op": "auto"}
    genDType frexp(genDType, out genIType);
  DEFAULT METADATA {"essl_level": "ESSL3_1_BUILTINS", "glsl_level": "GLSL4_BUILTINS", "op": "auto"}
    genType ldexp(genType, genIType);
  DEFAULT METADATA {"glsl_level": "GLSL4_BUILTINS", "op": "auto"}
    genDType ldexp(genDType, genIType);
  DEFAULT METADATA {"essl_level": "ESSL3_BUILTINS", "glsl_level": "GLSL4_2_BUILTINS", "op": "auto"}
    uint packSnorm2x16(vec2);
    uint packHalf2x16(vec2);
    vec2 unpackSnorm2x16(uint);
    vec2 unpackHalf2x16(uint);
  DEFAULT METADATA {"essl_level": "ESSL3_BUILTINS", "glsl_level": "GLSL4_BUILTINS", "op": "auto"}
    uint packUnorm2x16(vec2);
    vec2 unpackUnorm2x16(uint);
  DEFAULT METADATA {"essl_level": "ESSL3_1_BUILTINS", "glsl_level": "GLSL4_BUILTINS", "op": "auto"}
    uint packUnorm4x8(vec4);
    uint packSnorm4x8(vec4);
    vec4 unpackUnorm4x8(uint);
    vec4 unpackSnorm4x8(uint);
  DEFAULT METADATA {"glsl_level": "GLSL4_BUILTINS", "op": "auto"}
    double packDouble2x32(uvec2);
    uvec2 unpackDouble2x32(double);
GROUP END Common

GROUP BEGIN Geometric
  DEFAULT METADATA {"essl_level": "COMMON_BUILTINS", "glsl_level": "COMMON_BUILTINS", "op": "auto"}
    float length(genType);
  DEFAULT METADATA {"glsl_level": "GLSL4_BUILTINS", "op": "auto"}
    double length(genDType);
  DEFAULT METADATA {"essl_level": "COMMON_BUILTINS", "glsl_level": "COMMON_BUILTINS", "op": "auto"}
    float distance(genType, genType);
  DEFAULT METADATA {"glsl_level": "GLSL4_BUILTINS", "op": "auto"}
    double distance(genDType, genDType);
  DEFAULT METADATA {"essl_level": "COMMON_BUILTINS", "glsl_level": "COMMON_BUILTINS", "op": "auto"}
    float dot(genType, genType);
  DEFAULT METADATA {"glsl_level": "GLSL4_BUILTINS", "op": "auto"}
    double dot(genDType, genDType);
  DEFAULT METADATA {"essl_level": "COMMON_BUILTINS", "glsl_level": "COMMON_BUILTINS", "op": "auto"}
    vec3 cross(vec3, vec3);
  DEFAULT METADATA {"glsl_level": "GLSL4_BUILTINS", "op": "auto"}
    dvec3 cross(dvec3, dvec3);
  DEFAULT METADATA {"essl_level": "COMMON_BUILTINS", "glsl_level": "COMMON_BUILTINS", "op": "auto"}
    genType normalize(genType);
  DEFAULT METADATA {"glsl_level": "GLSL4_BUILTINS", "op": "auto"}
    genDType normalize(genDType);
  DEFAULT METADATA {"essl_level": "COMMON_BUILTINS", "glsl_level": "COMMON_BUILTINS", "op": "auto"}
    genType faceforward(genType, genType, genType);
  DEFAULT METADATA {"glsl_level": "GLSL4_BUILTINS", "op": "auto"}
    genDType faceforward(genDType, genDType, genDType);
  DEFAULT METADATA {"essl_level": "COMMON_BUILTINS", "glsl_level": "COMMON_BUILTINS", "op": "auto"}
    genType reflect(genType, genType);
  DEFAULT METADATA {"glsl_level": "GLSL4_BUILTINS", "op": "auto"}
    genDType reflect(genDType, genDType);
  DEFAULT METADATA {"essl_level": "COMMON_BUILTINS", "glsl_level": "COMMON_BUILTINS", "op": "auto"}
    genType refract(genType, genType, float);
  DEFAULT METADATA {"glsl_level": "GLSL4_BUILTINS", "op": "auto"}
    genDType refract(genDType, genDType, float);
GROUP END Geometric

GROUP BEGIN GeometricVS {"shader_type": "VERTEX"}
  DEFAULT METADATA {"glsl_level": "COMMON_BUILTINS", "op": "CallBuiltInFunction"}
    vec4 ftransform();
GROUP END GeometricVS

GROUP BEGIN Matrix
  DEFAULT METADATA {"essl_level": "COMMON_BUILTINS", "glsl_level": "COMMON_BUILTINS", "op": "MulMatrixComponentWise"}
    mat2 matrixCompMult(mat2, mat2);
    mat3 matrixCompMult(mat3, mat3);
    mat4 matrixCompMult(mat4, mat4);
  DEFAULT METADATA {"essl_level": "ESSL3_BUILTINS", "op": "MulMatrixComponentWise"}
    mat2x3 matrixCompMult(mat2x3, mat2x3);
    mat3x2 matrixCompMult(mat3x2, mat3x2);
    mat2x4 matrixCompMult(mat2x4, mat2x4);
    mat4x2 matrixCompMult(mat4x2, mat4x2);
    mat3x4 matrixCompMult(mat3x4, mat3x4);
    mat4x3 matrixCompMult(mat4x3, mat4x3);
  DEFAULT METADATA {"essl_level": "ESSL3_BUILTINS", "glsl_level": "GLSL1_2_BUILTINS", "op": "auto"}
    mat2 outerProduct(vec2, vec2);
    mat3 outerProduct(vec3, vec3);
    mat4 outerProduct(vec4, vec4);
    mat2x3 outerProduct(vec3, vec2);
    mat3x2 outerProduct(vec2, vec3);
    mat2x4 outerProduct(vec4, vec2);
    mat4x2 outerProduct(vec2, vec4);
    mat3x4 outerProduct(vec4, vec3);
    mat4x3 outerProduct(vec3, vec4);
    mat2 transpose(mat2);
    mat3 transpose(mat3);
    mat4 transpose(mat4);
    mat2x3 transpose(mat3x2);
    mat3x2 transpose(mat2x3);
    mat2x4 transpose(mat4x2);
    mat4x2 transpose(mat2x4);
    mat3x4 transpose(mat4x3);
    mat4x3 transpose(mat3x4);
  DEFAULT METADATA {"essl_level": "ESSL3_BUILTINS", "op": "auto"}
    float determinant(mat2);
    float determinant(mat3);
    float determinant(mat4);
  DEFAULT METADATA {"essl_level": "ESSL3_BUILTINS", "glsl_level": "GLSL1_4_BUILTINS", "op": "auto"}
    mat2 inverse(mat2);
    mat3 inverse(mat3);
    mat4 inverse(mat4);
GROUP END Matrix

GROUP BEGIN Vector
  DEFAULT METADATA {"essl_level": "COMMON_BUILTINS", "glsl_level": "COMMON_BUILTINS", "op": "LessThanComponentWise"}
    bvec lessThan(vec, vec);
    bvec lessThan(ivec, ivec);
  DEFAULT METADATA {"essl_level": "ESSL3_BUILTINS", "glsl_level": "GLSL1_3_BUILTINS", "op": "LessThanComponentWise"}
    bvec lessThan(uvec, uvec);
  DEFAULT METADATA {"essl_level": "COMMON_BUILTINS", "glsl_level": "COMMON_BUILTINS", "op": "LessThanEqualComponentWise"}
    bvec lessThanEqual(vec, vec);
    bvec lessThanEqual(ivec, ivec);
  DEFAULT METADATA {"essl_level": "ESSL3_BUILTINS", "glsl_level": "GLSL1_3_BUILTINS", "op": "LessThanEqualComponentWise"}
    bvec lessThanEqual(uvec, uvec);
  DEFAULT METADATA {"essl_level": "COMMON_BUILTINS", "glsl_level": "COMMON_BUILTINS", "op": "GreaterThanComponentWise"}
    bvec greaterThan(vec, vec);
    bvec greaterThan(ivec, ivec);
  DEFAULT METADATA {"essl_level": "ESSL3_BUILTINS", "glsl_level": "GLSL1_3_BUILTINS", "op": "GreaterThanComponentWise"}
    bvec greaterThan(uvec, uvec);
  DEFAULT METADATA {"essl_level": "COMMON_BUILTINS", "glsl_level": "COMMON_BUILTINS", "op": "GreaterThanEqualComponentWise"}
    bvec greaterThanEqual(vec, vec);
    bvec greaterThanEqual(ivec, ivec);
  DEFAULT METADATA {"essl_level": "ESSL3_BUILTINS", "glsl_level": "GLSL1_3_BUILTINS", "op": "GreaterThanEqualComponentWise"}
    bvec greaterThanEqual(uvec, uvec);
  DEFAULT METADATA {"essl_level": "COMMON_BUILTINS", "glsl_level": "COMMON_BUILTINS", "op": "EqualComponentWise"}
    bvec equal(vec, vec);
    bvec equal(ivec, ivec);
  DEFAULT METADATA {"essl_level": "ESSL3_BUILTINS", "glsl_level": "GLSL1_3_BUILTINS", "op": "EqualComponentWise"}
    bvec equal(uvec, uvec);
  DEFAULT METADATA {"essl_level": "COMMON_BUILTINS", "glsl_level": "COMMON_BUILTINS", "op": "EqualComponentWise"}
    bvec equal(bvec, bvec);
  DEFAULT METADATA {"essl_level": "COMMON_BUILTINS", "glsl_level": "COMMON_BUILTINS", "op": "NotEqualComponentWise"}
    bvec notEqual(vec, vec);
    bvec notEqual(ivec, ivec);
  DEFAULT METADATA {"essl_level": "ESSL3_BUILTINS", "glsl_level": "GLSL1_3_BUILTINS", "op": "NotEqualComponentWise"}
    bvec notEqual(uvec, uvec);
  DEFAULT METADATA {"essl_level": "COMMON_BUILTINS", "glsl_level": "COMMON_BUILTINS", "op": "NotEqualComponentWise"}
    bvec notEqual(bvec, bvec);
  DEFAULT METADATA {"essl_level": "COMMON_BUILTINS", "glsl_level": "COMMON_BUILTINS", "op": "auto"}
    bool any(bvec);
    bool all(bvec);
  DEFAULT METADATA {"essl_level": "COMMON_BUILTINS", "glsl_level": "COMMON_BUILTINS", "op": "LogicalNotComponentWise", "suffix": "Func"}
    bvec not(bvec);
GROUP END Vector

GROUP BEGIN Integer
  DEFAULT METADATA {"essl_level": "ESSL3_1_BUILTINS", "glsl_level": "GLSL4_BUILTINS", "op": "auto"}
    genIType bitfieldExtract(genIType, int, int);
    genUType bitfieldExtract(genUType, int, int);
    genIType bitfieldInsert(genIType, genIType, int, int);
    genUType bitfieldInsert(genUType, genUType, int, int);
    genIType bitfieldReverse(genIType);
    genUType bitfieldReverse(genUType);
    genIType bitCount(genIType);
    genIType bitCount(genUType);
    genIType findLSB(genIType);
    genIType findLSB(genUType);
    genIType findMSB(genIType);
    genIType findMSB(genUType);
    genUType uaddCarry(genUType, genUType, out genUType);
    genUType usubBorrow(genUType, genUType, out genUType);
    void umulExtended(genUType, genUType, out genUType, out genUType);
    void imulExtended(genIType, genIType, out genIType, out genIType);
GROUP END Integer

GROUP BEGIN TextureFirstVersions
  DEFAULT METADATA {"essl_level": "ESSL1_BUILTINS", "glsl_level": "COMMON_BUILTINS", "op": "CallBuiltInFunction"}
    vec4 texture2D(sampler2D, vec2);
    vec4 texture2DProj(sampler2D, vec3);
    vec4 texture2DProj(sampler2D, vec4);
    vec4 textureCube(samplerCube, vec3);
  DEFAULT METADATA {"glsl_level": "COMMON_BUILTINS", "op": "CallBuiltInFunction"}
    vec4 texture1D(sampler1D, float);
    vec4 texture1DProj(sampler1D, vec2);
    vec4 texture1DProj(sampler1D, vec4);
    vec4 texture3D(sampler3D, vec3);
    vec4 texture3DProj(sampler3D, vec4);
    vec4 shadow1D(sampler1DShadow, vec3);
    vec4 shadow1DProj(sampler1DShadow, vec4);
    vec4 shadow2D(sampler2DShadow, vec3);
    vec4 shadow2DProj(sampler2DShadow, vec4);
GROUP END TextureFirstVersions

// These are extension functions from OES_EGL_image_external and
// NV_EGL_stream_consumer_external. We don't have a way to mark a built-in with two alternative
// extensions, so these are marked with none. This is fine, since these functions overload core
// function names and the functions require a samplerExternalOES parameter, which can only be
// created if one of the extensions is enabled.
// TODO(oetuaho): Consider implementing a cleaner solution.
GROUP BEGIN EGL_image_external
  DEFAULT METADATA {"essl_level": "ESSL1_BUILTINS", "op": "CallBuiltInFunction"}
    vec4 texture2D(samplerExternalOES, vec2);
    vec4 texture2DProj(samplerExternalOES, vec3);
    vec4 texture2DProj(samplerExternalOES, vec4);
GROUP END EGL_image_external

GROUP BEGIN ARB_texture_rectangle
  DEFAULT METADATA {"essl_level": "ESSL1_BUILTINS", "op": "CallBuiltInFunction", "essl_extension": "ARB_texture_rectangle"}
    vec4 texture2DRect(sampler2DRect, vec2);
    vec4 texture2DRectProj(sampler2DRect, vec3);
    vec4 texture2DRectProj(sampler2DRect, vec4);
  DEFAULT METADATA {"essl_level": "ESSL3_BUILTINS", "op": "CallBuiltInFunction", "essl_extension": "ARB_texture_rectangle"}
    // We don't have a rectangle texture essl_extension for OpenGL ES however based on the behavior of
    // rectangle texture in desktop OpenGL, they should be sampled with a "texture" overload in
    // GLSL version that have such an overload. This is the case for ESSL3 and above.
    vec4 texture(sampler2DRect, vec2);
    vec4 textureProj(sampler2DRect, vec3);
    vec4 textureProj(sampler2DRect, vec4);
GROUP END ARB_texture_rectangle

// The *Grad* variants are new to both vertex and fragment shaders; the fragment
// shader specific pieces are added separately below.
GROUP BEGIN EXT_shader_texture_lod
  DEFAULT METADATA {"essl_level": "ESSL1_BUILTINS", "op": "CallBuiltInFunction", "essl_extension": "EXT_shader_texture_lod"}
    vec4 texture2DGradEXT(sampler2D, vec2, vec2, vec2);
    vec4 texture2DProjGradEXT(sampler2D, vec3, vec2, vec2);
    vec4 texture2DProjGradEXT(sampler2D, vec4, vec2, vec2);
    vec4 textureCubeGradEXT(samplerCube, vec3, vec3, vec3);
GROUP END EXT_shader_texture_lod

GROUP BEGIN TextureFirstVersionsFS {"shader_type": "FRAGMENT"}
  DEFAULT METADATA {"essl_level": "ESSL1_BUILTINS", "glsl_level": "COMMON_BUILTINS", "op": "CallBuiltInFunction"}
    vec4 texture2D(sampler2D, vec2, float);
    vec4 texture2DProj(sampler2D, vec3, float);
    vec4 texture2DProj(sampler2D, vec4, float);
    vec4 textureCube(samplerCube, vec3, float);
  DEFAULT METADATA {"glsl_level": "COMMON_BUILTINS", "op": "CallBuiltInFunction"}
    vec4 texture3D(sampler3D, vec3, float);
    vec4 texture3DProj(sampler3D, vec4, float);
    vec4 texture3DLod(sampler3D, vec3, float);
    vec4 texture3DProjLod(sampler3D, vec4, float);
    vec4 texture1D(sampler1D, float, float);
    vec4 texture1DProj(sampler1D, vec2, float);
    vec4 texture1DProj(sampler1D, vec4, float);
    vec4 shadow1D(sampler1DShadow, vec3, float);
    vec4 shadow1DProj(sampler1DShadow, vec4, float);
    vec4 shadow2D(sampler2DShadow, vec3, float);
    vec4 shadow2DProj(sampler2DShadow, vec4, float);
GROUP END TextureFirstVersionsFS

GROUP BEGIN TextureFirstVersionsFSExt {"shader_type": "FRAGMENT"}
  DEFAULT METADATA {"essl_level": "ESSL1_BUILTINS", "op": "auto", "essl_extension": "OES_standard_derivatives", "hasSideEffects": "true", "suffix": "Ext"}
    genType dFdx(genType);
    genType dFdy(genType);
    genType fwidth(genType);
  DEFAULT METADATA {"essl_level": "ESSL1_BUILTINS", "op": "CallBuiltInFunction", "essl_extension": "EXT_shader_texture_lod"}
    vec4 texture2DLodEXT(sampler2D, vec2, float);
    vec4 texture2DProjLodEXT(sampler2D, vec3, float);
    vec4 texture2DProjLodEXT(sampler2D, vec4, float);
    vec4 textureCubeLodEXT(samplerCube, vec3, float);
  DEFAULT METADATA {"essl_level": "ESSL1_BUILTINS", "op": "CallBuiltInFunction", "essl_extension": "OES_texture_3D"}
    vec4 texture3D(sampler3D, vec3);
    vec4 texture3DProj(sampler3D, vec4);
  DEFAULT METADATA {"essl_level": "ESSL1_BUILTINS", "op": "CallBuiltInFunction", "essl_extension": "OES_texture_3D"}
    vec4 texture3D(sampler3D, vec3, float);
    vec4 texture3DProj(sampler3D, vec4, float);
  DEFAULT METADATA {"essl_level": "ESSL1_BUILTINS", "op": "CallBuiltInFunction", "essl_extension": "OES_texture_3D"}
    vec4 texture3DLod(sampler3D, vec3, float);
    vec4 texture3DProjLod(sampler3D, vec4, float);
GROUP END TextureFirstVersionsFSExt

GROUP BEGIN TextureFirstVersionsVS {"shader_type": "VERTEX"}
  DEFAULT METADATA {"essl_level": "ESSL1_BUILTINS", "glsl_level": "COMMON_BUILTINS", "op": "CallBuiltInFunction"}
    vec4 texture2DLod(sampler2D, vec2, float);
    vec4 texture2DProjLod(sampler2D, vec3, float);
    vec4 texture2DProjLod(sampler2D, vec4, float);
    vec4 textureCubeLod(samplerCube, vec3, float);
  DEFAULT METADATA {"glsl_level": "COMMON_BUILTINS", "op": "CallBuiltInFunction"}
    vec4 texture1DLod(sampler1D, float, float);
    vec4 texture1DProjLod(sampler1D, vec2, float);
    vec4 texture1DProjLod(sampler1D, vec4, float);
    vec4 shadow1DLod(sampler1DShadow, vec3, float);
    vec4 shadow1DProjLod(sampler1DShadow, vec4, float);
    vec4 shadow2DLod(sampler2DShadow, vec3, float);
    vec4 shadow2DProjLod(sampler2DShadow, vec4, float);
GROUP END TextureFirstVersionsVS

GROUP BEGIN TextureNoBias
  DEFAULT METADATA {"essl_level": "ESSL3_BUILTINS", "glsl_level": "GLSL1_3_BUILTINS", "op": "CallBuiltInFunction"}
    gvec4 texture(gsampler2D, vec2);
    gvec4 texture(gsampler3D, vec3);
    gvec4 texture(gsamplerCube, vec3);
    gvec4 texture(gsampler2DArray, vec3);
    float texture(sampler2DShadow, vec3);
    float texture(samplerCubeShadow, vec4);
    float texture(sampler2DArrayShadow, vec4);
  DEFAULT METADATA {"glsl_level": "GLSL1_3_BUILTINS", "op": "CallBuiltInFunction"}
    gvec4 texture(gsampler1D, float);
    float texture(sampler1DShadow, vec3);
    gvec4 texture(gsampler1DArray, vec3);
    float texture(sampler1DArrayShadow, vec3);
  DEFAULT METADATA {"glsl_level": "GLSL1_4_BUILTINS", "op": "CallBuiltInFunction"}
    gvec4 texture(gsampler2DRect, vec2);
    float texture(sampler2DRectShadow, vec3);
  DEFAULT METADATA {"glsl_level": "GLSL4_BUILTINS", "op": "CallBuiltInFunction"}
    float texture(samplerCubeArrayShadow, vec4, float);
  DEFAULT METADATA {"essl_level": "ESSL3_BUILTINS", "glsl_level": "GLSL1_3_BUILTINS", "op": "CallBuiltInFunction"}
    gvec4 textureProj(gsampler2D, vec3);
    gvec4 textureProj(gsampler2D, vec4);
    gvec4 textureProj(gsampler3D, vec4);
    float textureProj(sampler2DShadow, vec4);
  DEFAULT METADATA {"glsl_level": "GLSL1_3_BUILTINS", "op": "CallBuiltInFunction"}
    gvec4 textureProj(gsampler1D, vec2);
    gvec4 textureProj(gsampler1D, vec4);
    float textureProj(sampler1DShadow, vec4);
  DEFAULT METADATA {"glsl_level": "GLSL1_4_BUILTINS", "op": "CallBuiltInFunction"}
    gvec4 textureProj(gsampler2DRect, vec3);
    gvec4 textureProj(gsampler2DRect, vec4);
    float textureProj(sampler2DRectShadow, vec4);
  DEFAULT METADATA {"essl_level": "ESSL3_BUILTINS", "glsl_level": "GLSL1_3_BUILTINS", "op": "CallBuiltInFunction"}
    gvec4 textureLod(gsampler2D, vec2, float);
    gvec4 textureLod(gsampler3D, vec3, float);
    gvec4 textureLod(gsamplerCube, vec3, float);
    gvec4 textureLod(gsampler2DArray, vec3, float);
    float textureLod(sampler2DShadow, vec3, float);
  DEFAULT METADATA {"glsl_level": "GLSL1_3_BUILTINS", "op": "CallBuiltInFunction"}
    gvec4 textureLod(gsampler1D, float, float);
    float textureLod(sampler1DShadow, vec3, float);
    gvec4 textureLod(gsampler1DArray, vec2, float);
    float textureLod(sampler1DArrayShadow, vec3, float);
  DEFAULT METADATA {"glsl_level": "GLSL4_BUILTINS", "op": "CallBuiltInFunction"}
    gvec4 textureLod(gsamplerCubeArray, vec4, float);
  DEFAULT METADATA {"essl_level": "ESSL3_BUILTINS", "glsl_level": "GLSL1_3_BUILTINS", "op": "CallBuiltInFunction"}
    ivec2 textureSize(gsampler2D, int);
    ivec3 textureSize(gsampler3D, int);
    ivec2 textureSize(gsamplerCube, int);
    ivec3 textureSize(gsampler2DArray, int);
    ivec2 textureSize(sampler2DShadow, int);
    ivec2 textureSize(samplerCubeShadow, int);
    ivec3 textureSize(sampler2DArrayShadow, int);
  DEFAULT METADATA {"glsl_level": "GLSL1_3_BUILTINS", "op": "CallBuiltInFunction"}
    int textureSize(gsampler1D, int);
    int textureSize(sampler1DShadow, int);
  DEFAULT METADATA {"glsl_level": "GLSL4_BUILTINS", "op": "CallBuiltInFunction"}
    ivec3 textureSize(gsamplerCubeArray, int);
    ivec3 textureSize(samplerCubeArrayShadow, int);
  DEFAULT METADATA {"glsl_level": "GLSL1_4_BUILTINS", "op": "CallBuiltInFunction"}
    ivec2 textureSize(gsampler2DRect);
    ivec2 textureSize(sampler2DRectShadow);
  DEFAULT METADATA {"glsl_level": "GLSL1_3_BUILTINS", "op": "CallBuiltInFunction"}
    ivec2 textureSize(gsampler1DArray, int);
    ivec2 textureSize(sampler1DArrayShadow, int);
  DEFAULT METADATA {"glsl_level": "GLSL1_4_BUILTINS", "op": "CallBuiltInFunction"}
    int textureSize(gsamplerBuffer);
  DEFAULT METADATA {"essl_level": "ESSL3_BUILTINS", "glsl_level": "GLSL1_3_BUILTINS", "op": "CallBuiltInFunction"}
    gvec4 textureProjLod(gsampler2D, vec3, float);
    gvec4 textureProjLod(gsampler2D, vec4, float);
    gvec4 textureProjLod(gsampler3D, vec4, float);
    float textureProjLod(sampler2DShadow, vec4, float);
  DEFAULT METADATA {"glsl_level": "GLSL1_3_BUILTINS", "op": "CallBuiltInFunction"}
    gvec4 textureProjLod(gsampler1D, vec2, float);
    gvec4 textureProjLod(gsampler1D, vec4, float);
    float textureProjLod(sampler1DShadow, vec4, float);
  DEFAULT METADATA {"essl_level": "ESSL3_BUILTINS", "glsl_level": "GLSL1_3_BUILTINS", "op": "CallBuiltInFunction"}
    gvec4 texelFetch(gsampler2D, ivec2, int);
    gvec4 texelFetch(gsampler3D, ivec3, int);
    gvec4 texelFetch(gsampler2DArray, ivec3, int);
  DEFAULT METADATA {"glsl_level": "GLSL1_3_BUILTINS", "op": "CallBuiltInFunction"}
    gvec4 texelFetch(gsampler1D, int, int);
  DEFAULT METADATA {"glsl_level": "GLSL1_4_BUILTINS", "op": "CallBuiltInFunction"}
    gvec4 texelFetch(gsampler2DRect, ivec2);
  DEFAULT METADATA {"glsl_level": "GLSL1_3_BUILTINS", "op": "CallBuiltInFunction"}
    gvec4 texelFetch(gsampler1DArray, ivec2, int);
  DEFAULT METADATA {"glsl_level": "GLSL1_4_BUILTINS", "op": "CallBuiltInFunction"}
    gvec4 texelFetch(gsamplerBuffer, int);
  DEFAULT METADATA {"essl_level": "ESSL3_BUILTINS", "glsl_level": "GLSL1_3_BUILTINS", "op": "CallBuiltInFunction"}
    gvec4 textureGrad(gsampler2D, vec2, vec2, vec2);
    gvec4 textureGrad(gsampler3D, vec3, vec3, vec3);
    gvec4 textureGrad(gsamplerCube, vec3, vec3, vec3);
  DEFAULT METADATA {"glsl_level": "GLSL1_3_BUILTINS", "op": "CallBuiltInFunction"}
    gvec4 textureGrad(gsampler2D, float, float, float);
  DEFAULT METADATA {"glsl_level": "GLSL1_4_BUILTINS", "op": "CallBuiltInFunction"}
    gvec4 textureGrad(gsampler2DRect, vec2, vec2, vec2);
    gvec4 textureGrad(sampler2DRectShadow, vec3, vec2, vec2);
  DEFAULT METADATA {"essl_level": "ESSL3_BUILTINS", "glsl_level": "GLSL1_3_BUILTINS", "op": "CallBuiltInFunction"}
    float textureGrad(sampler2DShadow, vec3, vec2, vec2);
    float textureGrad(samplerCubeShadow, vec4, vec3, vec3);
    gvec4 textureGrad(gsampler2DArray, vec3, vec2, vec2);
    float textureGrad(sampler2DArrayShadow, vec4, vec2, vec2);
  DEFAULT METADATA {"glsl_level": "GLSL1_3_BUILTINS", "op": "CallBuiltInFunction"}
    float textureGrad(sampler1DShadow, vec3, float, float);
    gvec4 textureGrad(gsampler1DArray, vec2, float, float);
    float textureGrad(sampler1DArrayShadow, vec3, float, float);
  DEFAULT METADATA {"glsl_level": "GLSL4_BUILTINS", "op": "CallBuiltInFunction"}
    gvec4 textureGrad(gsamplerCubeArray, vec4, vec3, vec3);
  DEFAULT METADATA {"essl_level": "ESSL3_BUILTINS", "glsl_level": "GLSL1_3_BUILTINS", "op": "CallBuiltInFunction"}
    gvec4 textureProjGrad(gsampler2D, vec3, vec2, vec2);
    gvec4 textureProjGrad(gsampler2D, vec4, vec2, vec2);
    gvec4 textureProjGrad(gsampler3D, vec4, vec3, vec3);
    float textureProjGrad(sampler2DShadow, vec4, vec2, vec2);
  DEFAULT METADATA {"glsl_level": "GLSL1_3_BUILTINS", "op": "CallBuiltInFunction"}
    gvec4 textureProjGrad(gsampler1D, vec2, float, float);
    gvec4 textureProjGrad(gsampler1D, vec4, float, float);
    float textureProjGrad(sampler1DShadow, vec4, float, float);
  DEFAULT METADATA {"glsl_level": "GLSL1_4_BUILTINS", "op": "CallBuiltInFunction"}
    gvec4 textureProjGrad(gsampler2DRect, vec3, vec2, vec2);
    gvec4 textureProjGrad(gsampler2DRect, vec4, vec2, vec2);
    float textureProjGrad(sampler2DRectShadow, vec4, vec2, vec2);
  DEFAULT METADATA {"glsl_level": "GLSL4_3_BUILTINS", "op": "CallBuiltInFunction"}
    int textureQueryLevels(gsampler1D);
    int textureQueryLevels(gsampler2D);
    int textureQueryLevels(gsampler3D);
    int textureQueryLevels(gsamplerCube);
    int textureQueryLevels(gsampler1DArray);
    int textureQueryLevels(gsampler2DArray);
    int textureQueryLevels(gsamplerCubeArray);
    int textureQueryLevels(sampler1DShadow);
    int textureQueryLevels(sampler2DShadow);
    int textureQueryLevels(samplerCubeShadow);
    int textureQueryLevels(sampler1DArrayShadow);
    int textureQueryLevels(sampler2DArrayShadow);
    int textureQueryLevels(samplerCubeArrayShadow);
  DEFAULT METADATA {"glsl_level": "GLSL4_5_BUILTINS", "op": "CallBuiltInFunction"}
    int textureSamples(gsampler2DMS);
    int textureSamples(gsampler2DMSArray);
GROUP END TextureNoBias

GROUP BEGIN TextureSizeMS
  DEFAULT METADATA {"essl_level": "ESSL3_1_BUILTINS", "glsl_level": "GLSL1_5_BUILTINS", "op": "CallBuiltInFunction"}
    ivec2 textureSize(gsampler2DMS);
GROUP END TextureSizeMS

GROUP BEGIN TextureSizeMSExt
  DEFAULT METADATA {"essl_level": "ESSL3_BUILTINS", "op": "CallBuiltInFunction", "essl_extension": "ANGLE_texture_multisample", "suffix": "Ext"}
    ivec2 textureSize(gsampler2DMS);
GROUP END TextureSizeMSExt

GROUP BEGIN TextureSizeMSArray
  DEFAULT METADATA {"glsl_level": "GLSL1_5_BUILTINS", "op": "CallBuiltInFunction"}
    ivec3 textureSize(gsampler2DMSArray);
GROUP END TextureSizeMSArray

GROUP BEGIN TextureSizeMSArrayExt
  DEFAULT METADATA {"essl_level": "ESSL3_1_BUILTINS", "op": "CallBuiltInFunction", "essl_extension": "OES_texture_storage_multisample_2d_array", "suffix": "Ext"}
    ivec3 textureSize(gsampler2DMSArray);
GROUP END TextureSizeMSArrayExt

GROUP BEGIN TexelFetchMS
  DEFAULT METADATA {"essl_level": "ESSL3_1_BUILTINS", "glsl_level": "GLSL1_5_BUILTINS", "op": "CallBuiltInFunction"}
    gvec4 texelFetch(gsampler2DMS, ivec2, int);
GROUP END TexelFetchMS

GROUP BEGIN TexelFetchMSExt
  DEFAULT METADATA {"essl_level": "ESSL3_BUILTINS", "op": "CallBuiltInFunction", "essl_extension": "ANGLE_texture_multisample", "suffix": "Ext"}
    gvec4 texelFetch(gsampler2DMS, ivec2, int);
GROUP END TexelFetchMSExt

GROUP BEGIN TexelFetchMSArray
  DEFAULT METADATA {"glsl_level": "GLSL1_5_BUILTINS", "op": "CallBuiltInFunction"}
    gvec4 texelFetch(gsampler2DMSArray, ivec3, int);
GROUP END TexelFetchMSArray

GROUP BEGIN TexelFetchMSArrayExt
  DEFAULT METADATA {"essl_level": "ESSL3_1_BUILTINS", "op": "CallBuiltInFunction", "essl_extension": "OES_texture_storage_multisample_2d_array", "suffix": "Ext"}
    gvec4 texelFetch(gsampler2DMSArray, ivec3, int);
GROUP END TexelFetchMSArrayExt

GROUP BEGIN TextureBias {"shader_type": "FRAGMENT"}
  DEFAULT METADATA {"essl_level": "ESSL3_BUILTINS", "glsl_level": "GLSL1_3_BUILTINS", "op": "CallBuiltInFunction"}
    gvec4 texture(gsampler2D, vec2, float);
    gvec4 texture(gsampler3D, vec3, float);
    gvec4 texture(gsamplerCube, vec3, float);
    gvec4 texture(gsampler2DArray, vec3, float);
    gvec4 textureProj(gsampler2D, vec3, float);
    gvec4 textureProj(gsampler2D, vec4, float);
    gvec4 textureProj(gsampler3D, vec4, float);
    float texture(sampler2DShadow, vec3, float);
    float texture(samplerCubeShadow, vec4, float);
    float textureProj(sampler2DShadow, vec4, float);
  DEFAULT METADATA {"glsl_level": "GLSL1_3_BUILTINS", "op": "CallBuiltInFunction"}
    gvec4 texture(gsampler1D, float, float);
    float texture(sampler1DShadow, vec3, float);
    gvec4 texture(gsampler1DArray, vec3, float);
    float texture(sampler1DArrayShadow, vec3, float);
    float texture(sampler2DArrayShadow, vec4, float);
    gvec4 textureProj(gsampler1D, vec2, float);
    gvec4 textureProj(gsampler1D, vec4, float);
    float textureProj(sampler1DShadow, vec4, float);
  DEFAULT METADATA {"essl_level": "ESSL3_BUILTINS", "op": "CallBuiltInFunction", "essl_extension": "OES_EGL_image_external_essl3"}
    vec4 texture(samplerExternalOES, vec2, float);
    vec4 textureProj(samplerExternalOES, vec3, float);
    vec4 textureProj(samplerExternalOES, vec4, float);
  DEFAULT METADATA {"essl_level": "ESSL3_BUILTINS", "op": "CallBuiltInFunction", "essl_extension": "EXT_YUV_target"}
    vec4 texture(samplerExternal2DY2YEXT, vec2, float);
    vec4 textureProj(samplerExternal2DY2YEXT, vec3, float);
    vec4 textureProj(samplerExternal2DY2YEXT, vec4, float);
GROUP END TextureBias

GROUP BEGIN TextureQueryLod {"shader_type": "FRAGMENT"}
  DEFAULT METADATA {"glsl_level": "GLSL4_BUILTINS", "op": "CallBuiltInFunction"}
    vec2 textureQueryLod(gsampler1D, float);
    vec2 textureQueryLod(gsampler2D, vec2);
    vec2 textureQueryLod(gsampler3D, vec3);
    vec2 textureQueryLod(gsamplerCube, vec3);
    vec2 textureQueryLod(gsampler1DArray, float);
    vec2 textureQueryLod(gsampler2DArray, vec2);
    vec2 textureQueryLod(gsamplerCubeArray, vec3);
    vec2 textureQueryLod(sampler1DShadow, float);
    vec2 textureQueryLod(sampler2DShadow, vec2);
    vec2 textureQueryLod(samplerCubeShadow, vec3);
    vec2 textureQueryLod(sampler1DArrayShadow, float);
    vec2 textureQueryLod(sampler2DArrayShadow, vec2);
    vec2 textureQueryLod(samplerCubeArrayShadow, vec3);
GROUP END TextureQueryLod

GROUP BEGIN TextureOffsetNoBias {"queryFunction": true}
  DEFAULT METADATA {"essl_level": "ESSL3_BUILTINS", "glsl_level": "GLSL1_3_BUILTINS", "op": "CallBuiltInFunction"}
    gvec4 textureOffset(gsampler2D, vec2, ivec2);
    gvec4 textureOffset(gsampler3D, vec3, ivec3);
    float textureOffset(sampler2DShadow, vec3, ivec2);
    gvec4 textureOffset(gsampler2DArray, vec3, ivec2);
  DEFAULT METADATA {"glsl_level": "GLSL1_3_BUILTINS", "op": "CallBuiltInFunction"}
    gvec4 textureOffset(gsampler1D, float, int);
  DEFAULT METADATA {"glsl_level": "GLSL1_4_BUILTINS", "op": "CallBuiltInFunction"}
    gvec4 textureOffset(gsampler2DRect, vec2, ivec2);
    float textureOffset(sampler2DRectShadow, vec3, ivec2);
  DEFAULT METADATA {"glsl_level": "GLSL1_3_BUILTINS", "op": "CallBuiltInFunction"}
    float textureOffset(sampler1DShadow, vec3, int);
    gvec4 textureOffset(gsampler1DArray, vec2, int);
    float textureOffset(sampler1DArrayShadow, vec3, int);
  DEFAULT METADATA {"glsl_level": "GLSL4_3_BUILTINS", "op": "CallBuiltInFunction"}
    float textureOffset(sampler2DArrayShadow, vec4, ivec2);
  DEFAULT METADATA {"essl_level": "ESSL3_BUILTINS", "glsl_level": "GLSL1_3_BUILTINS", "op": "CallBuiltInFunction"}
    gvec4 textureProjOffset(gsampler2D, vec3, ivec2);
    gvec4 textureProjOffset(gsampler2D, vec4, ivec2);
    gvec4 textureProjOffset(gsampler3D, vec4, ivec3);
    float textureProjOffset(sampler2DShadow, vec4, ivec2);
  DEFAULT METADATA {"glsl_level": "GLSL1_3_BUILTINS", "op": "CallBuiltInFunction"}
    gvec4 textureProjOffset(gsampler1D, vec2, int);
    gvec4 textureProjOffset(gsampler1D, vec4, int);
  DEFAULT METADATA {"glsl_level": "GLSL1_4_BUILTINS", "op": "CallBuiltInFunction"}
    gvec4 textureProjOffset(gsampler2DRect, vec3, ivec2);
    gvec4 textureProjOffset(gsampler2DRect, vec4, ivec2);
    float textureProjOffset(sampler2DRectShadow, vec4, ivec2);
  DEFAULT METADATA {"glsl_level": "GLSL1_3_BUILTINS", "op": "CallBuiltInFunction"}
    float textureProjOffset(sampler1DShadow, vec4, int);
  DEFAULT METADATA {"essl_level": "ESSL3_BUILTINS", "glsl_level": "GLSL1_3_BUILTINS", "op": "CallBuiltInFunction"}
    gvec4 textureLodOffset(gsampler2D, vec2, float, ivec2);
    gvec4 textureLodOffset(gsampler3D, vec3, float, ivec3);
    float textureLodOffset(sampler2DShadow, vec3, float, ivec2);
    gvec4 textureLodOffset(gsampler2DArray, vec3, float, ivec2);
  DEFAULT METADATA {"glsl_level": "GLSL1_3_BUILTINS", "op": "CallBuiltInFunction"}
    gvec4 textureLodOffset(gsampler1D, float, float, int);
    float textureLodOffset(sampler1DShadow, vec3, float, int);
    gvec4 textureLodOffset(gsampler1DArray, vec2, float, int);
    float textureLodOffset(sampler1DArrayShadow, vec3, float, int);
  DEFAULT METADATA {"essl_level": "ESSL3_BUILTINS", "glsl_level": "GLSL1_3_BUILTINS", "op": "CallBuiltInFunction"}
    gvec4 textureProjLodOffset(gsampler2D, vec3, float, ivec2);
    gvec4 textureProjLodOffset(gsampler2D, vec4, float, ivec2);
    gvec4 textureProjLodOffset(gsampler3D, vec4, float, ivec3);
    float textureProjLodOffset(sampler2DShadow, vec4, float, ivec2);
  DEFAULT METADATA {"glsl_level": "GLSL1_3_BUILTINS", "op": "CallBuiltInFunction"}
    gvec4 textureProjLodOffset(gsampler1D, vec2, float, int);
    gvec4 textureProjLodOffset(gsampler1D, vec4, float, int);
    float textureProjLodOffset(sampler1DShadow, vec4, float, int);
  DEFAULT METADATA {"essl_level": "ESSL3_BUILTINS", "glsl_level": "GLSL1_3_BUILTINS", "op": "CallBuiltInFunction"}
    gvec4 texelFetchOffset(gsampler2D, ivec2, int, ivec2);
    gvec4 texelFetchOffset(gsampler3D, ivec3, int, ivec3);
    gvec4 texelFetchOffset(gsampler2DArray, ivec3, int, ivec2);
  DEFAULT METADATA {"glsl_level": "GLSL1_3_BUILTINS", "op": "CallBuiltInFunction"}
    gvec4 texelFetchOffset(gsampler1D, int, int, int);
  DEFAULT METADATA {"glsl_level": "GLSL1_4_BUILTINS", "op": "CallBuiltInFunction"}
    gvec4 texelFetchOffset(gsampler2DRect, ivec2, ivec2);
  DEFAULT METADATA {"glsl_level": "GLSL1_3_BUILTINS", "op": "CallBuiltInFunction"}
    gvec4 texelFetchOffset(gsampler1DArray, ivec2, int, int);
  DEFAULT METADATA {"essl_level": "ESSL3_BUILTINS", "glsl_level": "GLSL1_3_BUILTINS", "op": "CallBuiltInFunction"}
    gvec4 textureGradOffset(gsampler2D, vec2, vec2, vec2, ivec2);
    gvec4 textureGradOffset(gsampler3D, vec3, vec3, vec3, ivec3);
    float textureGradOffset(sampler2DShadow, vec3, vec2, vec2, ivec2);
    gvec4 textureGradOffset(gsampler2DArray, vec3, vec2, vec2, ivec2);
    float textureGradOffset(sampler2DArrayShadow, vec4, vec2, vec2, ivec2);
  DEFAULT METADATA {"glsl_level": "GLSL1_3_BUILTINS", "op": "CallBuiltInFunction"}
    gvec4 textureGradOffset(gsampler1D, float, float, float, int);
  DEFAULT METADATA {"glsl_level": "GLSL1_4_BUILTINS", "op": "CallBuiltInFunction"}
    gvec4 textureGradOffset(gsampler2DRect, vec2, vec2, vec2, ivec2);
    float textureGradOffset(sampler2DRectShadow, vec3, vec2, vec2, ivec2);
  DEFAULT METADATA {"glsl_level": "GLSL1_3_BUILTINS", "op": "CallBuiltInFunction"}
    float textureGradOffset(sampler1DShadow, vec3, float, float, int);
    gvec4 textureGradOffset(gsampler1DArray, vec2, float, float, int);
    float textureGradOffset(sampler1DArrayShadow, vec3, float, float, int);
  DEFAULT METADATA {"essl_level": "ESSL3_BUILTINS", "glsl_level": "GLSL1_3_BUILTINS", "op": "CallBuiltInFunction"}
    gvec4 textureProjGradOffset(gsampler2D, vec3, vec2, vec2, ivec2);
    gvec4 textureProjGradOffset(gsampler2D, vec4, vec2, vec2, ivec2);
    gvec4 textureProjGradOffset(gsampler3D, vec4, vec3, vec3, ivec3);
    float textureProjGradOffset(sampler2DShadow, vec4, vec2, vec2, ivec2);
  DEFAULT METADATA {"glsl_level": "GLSL1_3_BUILTINS", "op": "CallBuiltInFunction"}
    gvec4 textureProjGradOffset(gsampler1D, vec2, float, float, int);
    gvec4 textureProjGradOffset(gsampler1D, vec4, float, float, int);
  DEFAULT METADATA {"glsl_level": "GLSL1_4_BUILTINS", "op": "CallBuiltInFunction"}
    gvec4 textureProjGradOffset(gsampler2DRect, vec3, vec2, vec2, ivec2);
    gvec4 textureProjGradOffset(gsampler2DRect, vec4, vec2, vec2, ivec2);
    float textureProjGradOffset(sampler2DRectShadow, vec4, vec2, vec2, ivec2);
  DEFAULT METADATA {"glsl_level": "GLSL1_3_BUILTINS", "op": "CallBuiltInFunction"}
    float textureProjGradOffset(sampler1DShadow, vec4, float, float, int);
GROUP END TextureOffsetNoBias

GROUP BEGIN TextureOffsetBias {"queryFunction": true, "shader_type": "FRAGMENT"}
  DEFAULT METADATA {"essl_level": "ESSL3_BUILTINS", "glsl_level": "GLSL1_3_BUILTINS", "op": "CallBuiltInFunction"}
    gvec4 textureOffset(gsampler2D, vec2, ivec2, float);
    gvec4 textureOffset(gsampler3D, vec3, ivec3, float);
    float textureOffset(sampler2DShadow, vec3, ivec2, float);
    gvec4 textureOffset(gsampler2DArray, vec3, ivec2, float);
  DEFAULT METADATA {"glsl_level": "GLSL1_3_BUILTINS", "op": "CallBuiltInFunction"}
    gvec4 textureOffset(gsampler1D, float, int, float);
    float textureOffset(sampler1DShadow, vec3, int, float);
    gvec4 textureOffset(gsampler1DArray, vec2, int, float);
    float textureOffset(sampler1DArrayShadow, vec3, int, float);
  DEFAULT METADATA {"essl_level": "ESSL3_BUILTINS", "glsl_level": "GLSL1_3_BUILTINS", "op": "CallBuiltInFunction"}
    gvec4 textureProjOffset(gsampler2D, vec3, ivec2, float);
    gvec4 textureProjOffset(gsampler2D, vec4, ivec2, float);
    gvec4 textureProjOffset(gsampler3D, vec4, ivec3, float);
    float textureProjOffset(sampler2DShadow, vec4, ivec2, float);
  DEFAULT METADATA {"glsl_level": "GLSL1_3_BUILTINS", "op": "CallBuiltInFunction"}
    gvec4 textureProjOffset(gsampler1D, vec2, int, float);
    gvec4 textureProjOffset(gsampler1D, vec4, int, float);
    float textureProjOffset(sampler1DShadow, vec4, int, float);
GROUP END TextureOffsetBias

GROUP BEGIN EGL_image_external_essl3
  DEFAULT METADATA {"essl_level": "ESSL3_BUILTINS", "op": "CallBuiltInFunction", "essl_extension": "OES_EGL_image_external_essl3"}
    vec4 texture(samplerExternalOES, vec2);
    vec4 textureProj(samplerExternalOES, vec3);
    vec4 textureProj(samplerExternalOES, vec4);
    ivec2 textureSize(samplerExternalOES, int);
    vec4 texelFetch(samplerExternalOES, ivec2, int);
GROUP END EGL_image_external_essl3

GROUP BEGIN EXT_yuv_target
  DEFAULT METADATA {"essl_level": "ESSL3_BUILTINS", "op": "CallBuiltInFunction", "essl_extension": "EXT_YUV_target"}
    vec4 texture(samplerExternal2DY2YEXT, vec2);
    vec4 textureProj(samplerExternal2DY2YEXT, vec3);
    vec4 textureProj(samplerExternal2DY2YEXT, vec4);
    vec3 rgb_2_yuv(vec3, yuvCscStandardEXT);
    vec3 yuv_2_rgb(vec3, yuvCscStandardEXT);
    ivec2 textureSize(samplerExternal2DY2YEXT, int);
    vec4 texelFetch(samplerExternal2DY2YEXT, ivec2, int);
GROUP END EXT_yuv_target

GROUP BEGIN TextureGather {"queryFunction": true}
  DEFAULT METADATA {"essl_level": "ESSL3_1_BUILTINS", "glsl_level": "GLSL4_BUILTINS", "op": "CallBuiltInFunction"}
    gvec4 textureGather(gsampler2D, vec2);
    gvec4 textureGather(gsampler2D, vec2, int);
    gvec4 textureGather(gsampler2DArray, vec3);
    gvec4 textureGather(gsampler2DArray, vec3, int);
    gvec4 textureGather(gsamplerCube, vec3);
    gvec4 textureGather(gsamplerCube, vec3, int);
  DEFAULT METADATA {"glsl_level": "GLSL4_BUILTINS", "op": "CallBuiltInFunction"}
    gvec4 textureGather(gsamplerCubeArray, vec4);
    gvec4 textureGather(gsamplerCubeArray, vec4, int);
    gvec4 textureGather(gsampler2DRect, vec3);
    gvec4 textureGather(gsampler2DRect, vec3, int);
  DEFAULT METADATA {"essl_level": "ESSL3_1_BUILTINS", "op": "CallBuiltInFunction"}
    vec4 textureGather(sampler2DShadow, vec2);
  DEFAULT METADATA {"essl_level": "ESSL3_1_BUILTINS", "glsl_level": "GLSL4_BUILTINS", "op": "CallBuiltInFunction"}
    vec4 textureGather(sampler2DShadow, vec2, float);
  DEFAULT METADATA {"essl_level": "ESSL3_1_BUILTINS", "op": "CallBuiltInFunction"}
    vec4 textureGather(sampler2DArrayShadow, vec3);
  DEFAULT METADATA {"essl_level": "ESSL3_1_BUILTINS", "glsl_level": "GLSL4_BUILTINS", "op": "CallBuiltInFunction"}
    vec4 textureGather(sampler2DArrayShadow, vec3, float);
  DEFAULT METADATA {"essl_level": "ESSL3_1_BUILTINS", "op": "CallBuiltInFunction"}
    vec4 textureGather(samplerCubeShadow, vec3);
  DEFAULT METADATA {"essl_level": "ESSL3_1_BUILTINS", "glsl_level": "GLSL4_BUILTINS", "op": "CallBuiltInFunction"}
    vec4 textureGather(samplerCubeShadow, vec3, float);
  DEFAULT METADATA {"glsl_level": "GLSL4_BUILTINS", "op": "CallBuiltInFunction"}
    vec4 textureGather(samplerCubeArrayShadow, vec4, float);
    vec4 textureGather(sampler2DRectShadow, vec2, float);

    GROUP BEGIN Offset {"queryFunction": true}
      DEFAULT METADATA {"essl_level": "ESSL3_1_BUILTINS", "glsl_level": "GLSL4_BUILTINS", "op": "CallBuiltInFunction"}
        gvec4 textureGatherOffset(gsampler2D, vec2, ivec2);
        gvec4 textureGatherOffset(gsampler2D, vec2, ivec2, int);
        gvec4 textureGatherOffset(gsampler2DArray, vec3, ivec2);
        gvec4 textureGatherOffset(gsampler2DArray, vec3, ivec2, int);
        vec4 textureGatherOffset(sampler2DShadow, vec2, float, ivec2);
        vec4 textureGatherOffset(sampler2DArrayShadow, vec3, float, ivec2);
      DEFAULT METADATA {"glsl_level": "GLSL4_BUILTINS", "op": "CallBuiltInFunction"}
        gvec4 textureGatherOffset(gsampler2DRect, vec2, ivec2);
        gvec4 textureGatherOffset(gsampler2DRect, vec2, ivec2, int);
        vec4 textureGatherOffset(sampler2DRectShadow, vec2, float, ivec2);
        gvec4 textureGatherOffsets(gsampler2D, vec2, ivec2[4]);
        gvec4 textureGatherOffsets(gsampler2D, vec2, ivec2[4], int);
        gvec4 textureGatherOffsets(gsampler2DArray, vec3, ivec2[4]);
        gvec4 textureGatherOffsets(gsampler2DArray, vec3, ivec2[4], int);
        gvec4 textureGatherOffsets(gsampler2DRect, vec2, ivec2[4]);
        gvec4 textureGatherOffsets(gsampler2DRect, vec2, ivec2[4], int);
        vec4 textureGatherOffsets(sampler2DShadow, vec2, float, ivec2[4]);
        vec4 textureGatherOffsets(sampler2DArrayShadow, vec3, float, ivec2[4]);
        vec4 textureGatherOffsets(sampler2DRectShadow, vec2, float, ivec2[4]);
    GROUP END Offset
GROUP END TextureGather

GROUP BEGIN DerivativesFS {"shader_type": "FRAGMENT"}
  DEFAULT METADATA {"essl_level": "ESSL3_BUILTINS", "glsl_level": "COMMON_BUILTINS", "op": "auto", "hasSideEffects": "true"}
    genType dFdx(genType);
    genType dFdy(genType);
    genType fwidth(genType);
  DEFAULT METADATA {"glsl_level": "GLSL4_5_BUILTINS", "op": "CallBuiltInFunction", "hasSideEffects": "true"}
    genType dFdxFine(genType);
    genType dFdyFine(genType);
    genType dFdxCoarse(genType);
    genType dFdyCoarse(genType);
    genType fwidthFine(genType);
    genType fwidthCoarse(genType);
GROUP END DerivativesFS

GROUP BEGIN InterpolationFS {"shader_type": "FRAGMENT"}
  DEFAULT METADATA {"glsl_level": "GLSL4_BUILTINS", "op": "CallBuiltInFunction"}
    float interpolateAtCentroid(float);
    vec2 interpolateAtCentroid(vec2);
    vec3 interpolateAtCentroid(vec3);
    vec4 interpolateAtCentroid(vec4);
    float interpolateAtSample(float, int);
    vec2 interpolateAtSample(vec2, int);
    vec3 interpolateAtSample(vec3, int);
    vec4 interpolateAtSample(vec4, int);
    float interpolateAtOffset(float, vec2);
    vec2 interpolateAtOffset(vec2, vec2);
    vec3 interpolateAtOffset(vec3, vec2);
    vec4 interpolateAtOffset(vec4, vec2);
GROUP END InterpolationFS

GROUP BEGIN AtomicCounter
  DEFAULT METADATA {"essl_level": "ESSL3_1_BUILTINS", "glsl_level": "GLSL4_2_BUILTINS", "op": "CallBuiltInFunction"}
    uint atomicCounter(atomic_uint);
    uint atomicCounterIncrement(atomic_uint);
    uint atomicCounterDecrement(atomic_uint);
  DEFAULT METADATA {"glsl_level": "GLSL4_6_BUILTINS", "op": "CallBuiltInFunction"}
    uint atomicCounterAdd(atomic_uint, uint);
    uint atomicCounterSubtract(atomic_uint, uint);
    uint atomicCounterMin(atomic_uint, uint);
    uint atomicCounterMax(atomic_uint, uint);
    uint atomicCounterAnd(atomic_uint, uint);
    uint atomicCounterOr(atomic_uint, uint);
    uint atomicCounterXor(atomic_uint, uint);
    uint atomicCounterExchange(atomic_uint, uint);
    uint atomicCounterCompSwap(atomic_uint, uint, uint);
GROUP END AtomicCounter

GROUP BEGIN AtomicMemory {"queryFunction": true}
  DEFAULT METADATA {"essl_level": "ESSL3_1_BUILTINS", "glsl_level": "GLSL4_3_BUILTINS", "op": "auto"}
    uint atomicAdd(inout uint, uint);
    int atomicAdd(inout int, int);
    uint atomicMin(inout uint, uint);
    int atomicMin(inout int, int);
    uint atomicMax(inout uint, uint);
    int atomicMax(inout int, int);
    uint atomicAnd(inout uint, uint);
    int atomicAnd(inout int, int);
    uint atomicOr(inout uint, uint);
    int atomicOr(inout int, int);
    uint atomicXor(inout uint, uint);
    int atomicXor(inout int, int);
    uint atomicExchange(inout uint, uint);
    int atomicExchange(inout int, int);
    uint atomicCompSwap(inout uint, uint, uint);
    int atomicCompSwap(inout int, int, int);
GROUP END AtomicMemory

GROUP BEGIN Image {"queryFunction": true}
    GROUP BEGIN Store {"queryFunction": true}
      DEFAULT METADATA {"essl_level": "ESSL3_1_BUILTINS", "op": "CallBuiltInFunction"}
        void imageStore(gimage2D, ivec2, gvec4);
        void imageStore(gimage3D, ivec3, gvec4);
        void imageStore(gimage2DArray, ivec3, gvec4);
        void imageStore(gimageCube, ivec3, gvec4);
      DEFAULT METADATA {"glsl_level": "GLSL4_2_BUILTINS", "op": "CallBuiltInFunction"}
        void imageStore(writeonly IMAGE_PARAMS, gvec4);
    GROUP END Store
    GROUP BEGIN Load {"queryFunction": true}
      DEFAULT METADATA {"essl_level": "ESSL3_1_BUILTINS", "op": "CallBuiltInFunction"}
        gvec4 imageLoad(gimage2D, ivec2);
        gvec4 imageLoad(gimage3D, ivec3);
        gvec4 imageLoad(gimage2DArray, ivec3);
        gvec4 imageLoad(gimageCube, ivec3);
      DEFAULT METADATA {"glsl_level": "GLSL4_2_BUILTINS", "op": "CallBuiltInFunction"}
        gvec4 imageLoad(readonly IMAGE_PARAMS);
    GROUP END Load
  DEFAULT METADATA {"essl_level": "ESSL3_1_BUILTINS", "op": "CallBuiltInFunction"}
    ivec2 imageSize(gimage2D);
    ivec3 imageSize(gimage3D);
    ivec3 imageSize(gimage2DArray);
    ivec2 imageSize(gimageCube);
  DEFAULT METADATA {"glsl_level": "GLSL4_3_BUILTINS", "op": "CallBuiltInFunction"}
    int imageSize(readonly writeonly gimage1D);
    ivec2 imageSize(readonly writeonly gimage2D);
    ivec3 imageSize(readonly writeonly gimage3D);
    ivec2 imageSize(readonly writeonly gimageCube);
    ivec3 imageSize(readonly writeonly gimageCubeArray);
    ivec2 imageSize(readonly writeonly gimageRect);
    ivec2 imageSize(readonly writeonly gimage1DArray);
    ivec3 imageSize(readonly writeonly gimage2DArray);
    int imageSize(readonly writeonly gimageBuffer);
    ivec2 imageSize(readonly writeonly gimage2DMS);
    ivec3 imageSize(readonly writeonly gimage2DMSArray);
  DEFAULT METADATA {"glsl_level": "GLSL4_5_BUILTINS", "op": "CallBuiltInFunction"}
    int imageSamples(readonly writeonly gimage2DMS);
    int imageSamples(readonly writeonly gimage2DMSArray);
  DEFAULT METADATA {"glsl_level": "GLSL4_2_BUILTINS", "op": "CallBuiltInFunction"}
    uint imageAtomicAdd(IMAGE_PARAMS, uint);
    int imageAtomicAdd(IMAGE_PARAMS, int);
    uint imageAtomicMin(IMAGE_PARAMS, uint);
    int imageAtomicMin(IMAGE_PARAMS, int);
    uint imageAtomicMax(IMAGE_PARAMS, uint);
    int imageAtomicMax(IMAGE_PARAMS, int);
    uint imageAtomicAnd(IMAGE_PARAMS, uint);
    int imageAtomicAnd(IMAGE_PARAMS, int);
    uint imageAtomicOr(IMAGE_PARAMS, uint);
    int imageAtomicOr(IMAGE_PARAMS, int);
    uint imageAtomicXor(IMAGE_PARAMS, uint);
    int imageAtomicXor(IMAGE_PARAMS, int);
    uint imageAtomicExchange(IMAGE_PARAMS, uint);
    int imageAtomicExchange(IMAGE_PARAMS, int);
  DEFAULT METADATA {"glsl_level": "GLSL4_5_BUILTINS", "op": "CallBuiltInFunction"}
    int imageAtomicExchange(IMAGE_PARAMS, float);
  DEFAULT METADATA {"glsl_level": "GLSL4_2_BUILTINS", "op": "CallBuiltInFunction"}
    uint imageAtomicCompSwap(IMAGE_PARAMS, uint, uint);
    int imageAtomicCompSwap(IMAGE_PARAMS, int, int);
GROUP END Image

GROUP BEGIN Noise
  DEFAULT METADATA {"glsl_level": "COMMON_BUILTINS", "op": "CallBuiltInFunction"}
    float noise1(genType);
    vec2 noise2(genType);
    vec3 noise3(genType);
    vec4 noise4(genType);
GROUP END Noise

GROUP BEGIN Barrier
  DEFAULT METADATA {"essl_level": "ESSL3_1_BUILTINS", "glsl_level": "GLSL4_2_BUILTINS", "op": "auto", "hasSideEffects": true}
    void memoryBarrier();
  DEFAULT METADATA {"essl_level": "ESSL3_1_BUILTINS", "glsl_level": "GLSL4_3_BUILTINS", "op": "auto", "hasSideEffects": true}
    void memoryBarrierAtomicCounter();
    void memoryBarrierBuffer();
    void memoryBarrierImage();
GROUP END Barrier

GROUP BEGIN ESSL310CS {"shader_type": "COMPUTE"}
  DEFAULT METADATA {"essl_level": "ESSL3_1_BUILTINS", "glsl_level": "GLSL4_BUILTINS", "op": "auto", "hasSideEffects": true}
    void barrier();
  DEFAULT METADATA {"essl_level": "ESSL3_1_BUILTINS", "glsl_level": "GLSL4_3_BUILTINS", "op": "auto", "hasSideEffects": true}
    void memoryBarrierShared();
    void groupMemoryBarrier();
GROUP END ESSL310CS

GROUP BEGIN ESSL310GS {"shader_type": "GEOMETRY_EXT"}
  DEFAULT METADATA {"essl_level": "ESSL3_1_BUILTINS", "op": "auto", "essl_extension": "EXT_geometry_shader", "hasSideEffects": true}
    void EmitVertex();
    void EndPrimitive();
GROUP END ESSL310GS

GROUP BEGIN GLSLGS {"shader_type": "GEOMETRY"}
  DEFAULT METADATA {"glsl_level": "GLSL4_BUILTINS", "op": "CallBuiltInFunction", "hasSideEffects": "true"}
    void EmitStreamVertex(int);
    void EndStreamPrimitive(int);
  DEFAULT METADATA {"glsl_level": "GLSL1_5_BUILTINS", "op": "CallBuiltInFunction", "hasSideEffects": "true"}
    void EmitVertex();
    void EndPrimitive();
GROUP END GLSLGS

GROUP BEGIN SubpassInput
  DEFAULT METADATA {"glsl_level": "GLSL4_6_BUILTINS", "op": "CallBuiltInFunction", "hasSideEffects": true}
    gvec4 subpassLoad(gsubpassInput);
    gvec4 subpassLoad(gsubpassInputMS, int);
GROUP END SubpassInput

GROUP BEGIN ShaderInvocationGroup
  DEFAULT METADATA {"glsl_level": "GLSL4_6_BUILTINS", "op": "CallBuiltInFunction", "hasSideEffects": true}
    bool anyInvocation(bool);
    bool allInvocations(bool);
    bool allInvocationsEqual(bool);
GROUP END ShaderInvocationGroup