| GL version | 2.00 | 2.10 | 3.00 | 3.10 | 3.20 | 3.30 | 4.00 | 4.10 | 4.20 | 4.30 | 4.40 | 4.50 |
| GLSL version | 1.10 | 1.20 | 1.30 | 1.40 | 1.50 | 3.30 | 4.00 | 4.10 | 4.20 | 4.30 | 4.40 | 4.50 |
| Function Name | ||||||||||||
| abs (genType) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| abs (genIType) | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| abs (genDType) | - | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ |
| acos | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| acosh | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| all | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| any | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| asin | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| asinh | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| atan | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| atanh | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| atomicAdd | - | - | - | - | - | - | - | - | - | ✔ | ✔ | ✔ |
| atomicAnd | - | - | - | - | - | - | - | - | - | ✔ | ✔ | ✔ |
| atomicCompSwap | - | - | - | - | - | - | - | - | - | ✔ | ✔ | ✔ |
| atomicCounter | - | - | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ |
| atomicCounterDecrement | - | - | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ |
| atomicCounterIncrement | - | - | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ |
| atomicExchange | - | - | - | - | - | - | - | - | - | ✔ | ✔ | ✔ |
| atomicMax | - | - | - | - | - | - | - | - | - | ✔ | ✔ | ✔ |
| atomicMin | - | - | - | - | - | - | - | - | - | ✔ | ✔ | ✔ |
| atomicOr | - | - | - | - | - | - | - | - | - | ✔ | ✔ | ✔ |
| atomicXor | - | - | - | - | - | - | - | - | - | ✔ | ✔ | ✔ |
| barrier | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| bitCount | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| bitfieldInsert | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| bitfieldReverse | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| ceil (genType) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| ceil (genDType) | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| clamp (genType) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| clamp (genIType) | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| clamp (genUType) | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| clamp (genDType) | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| cos | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| cosh | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| cross (vec3) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| cross (dvec3) | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| degrees | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| determinant (float) | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| determinant (double) | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| dFdx | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| dFdy | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| dFdxCoarse | - | - | - | - | - | - | - | - | - | - | - | ✔ |
| dFdxFine | - | - | - | - | - | - | - | - | - | - | - | ✔ |
| dFdyCoarse | - | - | - | - | - | - | - | - | - | - | - | ✔ |
| dFdyFine | - | - | - | - | - | - | - | - | - | - | - | ✔ |
| distance (genType) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| distance (genDType) | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| dot (genType) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| dot (genDType) | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| EmitStreamVertex | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| EmitVertex | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| EndPrimitive | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| EndStreamPrimitive | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| equal | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| exp | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| exp2 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| faceforward (genType) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| faceforward (genDType) | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| findLSB | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| findMSB | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| floatBitsToInt | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| floatBitsToUInt | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| floor (genType) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| floor (genDType) | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| fma (genType) | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| fma (genDType) | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| fract (genType) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| fract (genDType) | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| frexp (genType) | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| frexp (genDType) | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| fwidth | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| fwidthCoarse | - | - | - | - | - | - | - | - | - | - | - | ✔ |
| fwidthFine | - | - | - | - | - | - | - | - | - | - | - | ✔ |
| gl_ClipDistance | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| gl_CullDistance | - | - | - | - | - | - | - | - | - | - | - | ✔ |
| gl_FragCoord | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| gl_FragDepth | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| gl_FrontFacing | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| gl_GlobalInvocationID | - | - | - | - | - | - | - | - | - | ✔ | ✔ | ✔ |
| gl_HelperInvocation | - | - | - | - | - | - | - | - | - | - | - | ✔ |
| gl_InstanceID | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| gl_InvocationID | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| gl_Layer (geometry stage) | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| gl_Layer (fragment stage) | - | - | - | - | - | - | - | - | - | ✔ | ✔ | ✔ |
| gl_LocalInvocationID | - | - | - | - | - | - | - | - | - | ✔ | ✔ | ✔ |
| gl_LocalInvocationIndex | - | - | - | - | - | - | - | - | - | ✔ | ✔ | ✔ |
| gl_NumSamples | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| gl_NumWorkGroups | - | - | - | - | - | - | - | - | - | ✔ | ✔ | ✔ |
| gl_PatchVerticesIn | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| gl_PointCoord | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| gl_PointSize (vertex shader) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| gl_PointSize (geometry shader) | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| gl_PointSize (tessellation evaluation shader) | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| gl_Position | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| gl_PrimitiveID (Fragment and Geometry Languages) | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| gl_PrimitiveID (Tessellation Control and Evaluation Languages) | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| gl_PrimitiveIDIn | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| gl_SampleID | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| gl_SampleMask | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| gl_SampleMaskIn | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| gl_SamplePosition | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| gl_TessCoord | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| gl_TessLevelInner | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| gl_TessLevelOuter | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| gl_VertexID | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| gl_ViewportIndex (geometry stage) | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| gl_ViewportIndex (fragment stage) | - | - | - | - | - | - | - | - | - | ✔ | ✔ | ✔ |
| gl_WorkGroupID | - | - | - | - | - | - | - | - | - | ✔ | ✔ | ✔ |
| gl_WorkGroupSize | - | - | - | - | - | - | - | - | - | ✔ | ✔ | ✔ |
| greaterThan (vec) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| greaterThan (ivec) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| greaterThan (uvec) | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| greaterThanEqual (vec) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| greaterThanEqual (ivec) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| greaterThanEqual (uvec) | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| groupMemoryBarrier | - | - | - | - | - | - | - | - | - | ✔ | ✔ | ✔ |
| imageAtomicAdd | - | - | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ |
| imageAtomicAnd | - | - | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ |
| imageAtomicCompSwap | - | - | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ |
| imageAtomicExchange (uint and int data) | - | - | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ |
| imageAtomicExchange (float data) | - | - | - | - | - | - | - | - | - | - | - | ✔ |
| imageAtomicMax | - | - | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ |
| imageAtomicMin | - | - | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ |
| imageAtomicOr | - | - | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ |
| imageAtomicXor | - | - | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ |
| imageLoad | - | - | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ |
| imageSamples | - | - | - | - | - | - | - | - | - | - | - | ✔ |
| imageSize | - | - | - | - | - | - | - | - | - | ✔ | ✔ | ✔ |
| imageStore | - | - | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ |
| umulExtended | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| intBitsToFloat | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| interpolateAtCentroid | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| interpolateAtoOffset | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| interpolateAtSample | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| inverse (float) | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| inverse (double) | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| inversesqrt (genType) | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| inversesqrt (genDType) | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| isinf (genType) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| isinf (genDType) | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| isnan (genType) | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| isnan (genDType) | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| ldexp (genType) | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| ldexp (genDType) | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| length (genType) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| length (genDType) | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| lessThan (vec) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| lessThan (ivec) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| lessThan (uvec) | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| lessThanEqual (vec) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| lessThanEqual (ivec) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| lessThanEqual (uvec) | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| log (genType) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| log2 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| matrixCompMult (genType) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| matrixCompMult (genDType) | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| max (genType) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| max (genIType) | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| max (genUType) | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| max (genDType) | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| memoryBarrier | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| memoryBarrierAtomicCounter | - | - | - | - | - | - | - | - | - | ✔ | ✔ | ✔ |
| memoryBarrierBuffer | - | - | - | - | - | - | - | - | - | ✔ | ✔ | ✔ |
| memoryBarrierImage | - | - | - | - | - | - | - | - | - | ✔ | ✔ | ✔ |
| memoryBarrierShared | - | - | - | - | - | - | - | - | - | ✔ | ✔ | ✔ |
| min (genType) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| min (genIType) | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| min (genUType) | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| min (genDType) | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| mix(genType) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| mix(genDType) | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| mix(genIType), mix(genUType), mix(genBType) | - | - | - | - | - | - | - | - | - | - | - | ✔ |
| mod (genType) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| mod (genDType) | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| modf (genType) | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| modf (genDType) | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| noise1 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| noise2 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| noise3 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| noise4 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| normalize (genType) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| normalize (genDType) | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| not | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| notEqual (vec) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| notEqual (ivec) | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| notEqual (uvec) | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| outerProduct (float) | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| outerProduct (double) | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| packDouble2x32 | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| packHalf2x16 | - | - | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ |
| packUnorm2x16 | - | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ |
| packSnorm2x16 | - | - | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ |
| packUnorm4x8 | - | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ |
| packSnorm4x8 | - | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ |
| pow | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| radians | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| reflect (genType) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| reflect (genDType) | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| refract (genType) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| refract (genDType) | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| round (genType) | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| round (genDType) | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| roundEven (genType) | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| roundEven (genDType) | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| sign (genType) | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| sign (genIType) | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| sign (genDType) | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| sin | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| sinh | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| smoothstep (genType) | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| smoothstep (genDType) | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| sqrt (genType) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| sqrt (genDType) | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| step (genType) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| step (genDType) | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| tan | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| tanh | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| texelFetch | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| texelFetch (gsampler2DRect, gsamplerBuffer) | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| texelFetch (gsampler2DMS, gsampler2DMSArray) | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| texelFetchOffset | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| texelFetchOffset (gsampler2DRect) | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| texelFetchOffset (gsampler2DMS, gsampler2DMSArray) | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| texture | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| texture (gsampler2DRect{Shadow}) | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| texture (gsampler2DMS, gsampler2DMSArray) | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| texture (gsamplerCubeArray{Shadow}) | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| textureGather | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| textureGatherOffset | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| textureGatherOffsets | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| textureGrad | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| textureGrad (gsampler2DRect{Shadow}) | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| textureGrad (gsamplerCubeArray) | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| textureGradOffset | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| textureGradOffset (gsampler2DRect{Shadow}) | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| textureLod | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| textureLod (gsampler2DRect{Shadow}) | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| textureLod (gsamplerCubeArray) | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| textureLodOffset | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| textureLodOffset (gsampler2DRect{Shadow}) | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| textureLodOffset (gsamplerCubeArray) | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| textureOffset | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| textureOffset (gsampler2DRect{Shadow}) | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| textureProj | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| textureProj (gsampler2DRect{Shadow}) | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| textureProjGrad | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| textureProjGrad (gsampler2DRect{Shadow}) | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| textureProjGradOffset | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| textureProjGradOffset (gsampler2DRect{Shadow}) | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| textureProjLod | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| textureProjLodOffset | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| textureProjOffset | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| textureProjOffset (gsampler2DRect{Shadow}) | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| textureQueryLevels | - | - | - | - | - | - | - | - | - | ✔ | ✔ | ✔ |
| textureQueryLod | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| textureSamples | - | - | - | - | - | - | - | - | - | - | - | ✔ |
| textureSize | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| textureSize (samplerBuffer, samplerRect{Shadow}) | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| textureSize (samplerCube{Shadow}) | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| transpose (float) | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| transpose (double) | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| trunc (genType) | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| trunc (genDType) | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| uaddCarry | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| umulExtended | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| unpackDouble2x32 | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| unpackHalf2x16 | - | - | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ |
| unpackUnorm2x16 | - | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ |
| unpackSnorm2x16 | - | - | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ |
| unpackUnorm4x8 | - | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ |
| unpackSnorm4x8 | - | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ |
| usubBorrow | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |