Известно, что универсальная форма и атрибуты являются регистрами в GPU. И мой вопрос - то, что происходит, когда другая программа связала? Стандарт гарантирует, что ранее устанавливает универсальные формы и/или приписывают указатели, будет перезагружен, или я должен перезагрузить их вручную в любом случае? Я хочу создать кэширующуюся систему. Кажется для меня, что атрибуты не перезагружаются (да?), когда восстановление программы и что относительно универсальных форм? GL перезагрузка драйвера ES их значения для меня?
Нет, не известно, что формы и атрибуты являются регистрами в GPU. На самом деле, это неверно, по крайней мере, в одном широко развернутом GPU OpenGL ES 2.0.
Униформа равна нулю, если она явно не инициализирована. Значения формы - это состояния, которые следуют за программным объектом. Другими словами, если вы установили униформу для данного программного объекта, вы можете рассчитывать на то, что это значение будет сохраняться при использовании одного и того же программного объекта, но вы не можете рассчитывать на то, что униформа в данном месте будет сохраняться при использовании нескольких программных объектов. Фактически, реализация OpenGL ES, которая делает это, будет нарушать спецификацию. Это не неопределенное поведение.
Указатели атрибутов являются глобальным состоянием контекста, и вы можете рассчитывать на то, что они будут сохраняться между вызовами одного и того же контекста OpenGL ES. То же самое относится к текущим значениям атрибутов (установленным через glVertexAttribute*-функции)