GameMaker's standard implementation of GLSL ES version 1.00rev17 leaves out some functionality that is commonly used in graphics programming. Fortunately, we can access some of these features by using GLSL's #extension directive. Here're two examples that demonstrate how to enable two particularly useful extensions. (Bear in mind that I've tested these on Windows but not other platforms.) GL_EXT_frag_depth, which enables per-pixel depth setting (gl_FragDepthEXT): https://github.com/JujuAdams/gl_FragDepthEXT GL_OES_standard_derivatives, which enables derivative functions (dFdx/dFdy/fwidth): https://github.com/JujuAdams/GL_OES_standard_derivatives I'm hardly the first person to demonstrate this extension directive functionality, but beyond these two extensions, I don't really know what other extensions are available and what they can do. There's an extension registry here and a GitHub repo for Angle (the OGL-to-DX transpiler GM uses) here but that's a lot of information to wade through. Anyone have any suggestions?