| // 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 |