"OpenGL – это машина состояния. Вы задаете различные переменные
состояния, и они остаются в действии, сохраняя свое состояние, до тех
пор, пока вы же их не измените."
Примерно такое определение можно найти в первых главах любого учебника по OpenGL.
Если открыть любую публикацию, посвященную повышению производительности графики в OpenGL, к примеру любую из этих:
http://www.cs.virginia.edu/~gfx/Courses/2004/RealTime/Performance-Optimisation.pdf
http://developer.amd.com/media/gpu_assets/PerformanceTuning.pdf
http://developer.amd.com/media/gpu_assets/KRI%202006-OpenGL%20optimizations.pdf
то можно найти описание одной из самых популярных проблем падения производительности - "too many state changes", что дословно переводится как "слишком много переключений состояний", тех самых состояний, на каких основана работа всего OpenGL.
Если углубиться в чтение этих (и многих других) публикаций, то можно найти простую рекомендацию - "уменьшайте количество переключений состояний". Казалось бы все очевидно, но разве мы специально вставляем лишние переключения? Откуда они берутся? И как мы можем их уменьшить?