What is the correct file extension for GLSL shaders?
There's no official extension in the spec. OpenGL doesn't handle loading shaders from files; you just pass in the shader code as a string, so there's no specific file format.
However, glslang, Khronos' reference GLSL compiler/validator, uses the following extensions to determine what type of shader that the file is for:
.vert
- a vertex shader.tesc
- a tessellation control shader.tese
- a tessellation evaluation shader.geom
- a geometry shader.frag
- a fragment shader.comp
- a compute shader
The glslang compiler created by Khronos makes assumptions about the shader stage based on the extension, but there is no standard extension outside of this (and quite a few projects make up their own). The glslang compiler keys off of .vert
, .tesc
(TESsellation Control shaders), .tese
(TESsellation Evaluation shaders), .geom
, .frag
, and .comp
.
But that's about it for any form of standard extension.