Wynika to ze sposobu funkcjonowania potoku graficznego, w którym najpierw dokonywane są wszystkie operacje geometryczne, tak aby otrzymać model do rasteryzacji, a następnie po jej wykonaniu przeprowadza się operacje na zrasteryzowanych fragmentach. Ze względu na odmienny charakter operacji wykonywanych przez vertex i fragment processor, shadery pisane dla każdego z nich różnią się nieznacznie dialektem, tzn. poza podstawowymi konstrukcjami językowymi, które są wspólne w obydwu przypadkach, istnieje część operacji, które są charakterystyczne tylko dla określonej jednostki.

Wersje i specyfikacje języka GLSL został wprowadzonym do OpenGL-a przez komitet standaryzacyjny ARB, odpowiedzialny za rozwój tej biblioteki, w wersji 1.5 jako rozszerzenie, a od wersji 2.0, po drobnych modyfikacjach, jest częścią podstawowego API.

Ponieważ język ten zastępuje dużą część dotychczasowej funkcjonalności OpenGL, wprowadzając dużo bardziej elastyczny model programowalnego potoku graficznego, zaleca się aby nowe aplikacje pisać w oparciu o niego, a dotychczasowe funkcje z tego