Там ещё есть glProgramBinary, но это не для офлайн-компиляции, а для того, чтобы после линковки программы на GLSL можно было выдернуть нативный бинарник (опять же, в проприетарном формате) через glGetProgramBinary, чтобы закэшировать его, и при следующем запуске быстрее загрузить шейдеры