Do Vertex Array Objects 'group' also glUniform?

Do Vertex Array Objects ‘group’ also glUniform uploads? (e.g. what one uploads to a shader?)

I’m almost certain they don’t since the documentation is that they only gather whatever alters “Vertex Array State” which appears to be only what glVertexAttribPointer etc. are doing.

But I want to make sure.

Do Vertex Array Objects ‘group’ also glUniform uploads?

Uniforms are program state, not VAO state.

I’m almost certain they don’t since the documentation is that they only gather whatever alters “Vertex Array State” which appears to be only what glVertexAttribPointer etc. are doing.

The OpenGL spec is very clear about these kinds of things. It doesn’t leave any ambiguity about what state is set by which functions or what state is encapsulated by what object. If it gives a list of state that VAOs encapsulate, then they encapsulate exactly and only that state.

That’s a very clear way to think of it. I wished the spec or at least web resources had introductions about it.

e.g. googling ‘program state opengl’ doesn’t bring up anything clear about what it is.

Section 6.2 of any version of the OpenGL specification lists all of OpenGL’s state and what objects (if any) that state belongs to.

Alternatively, from the OpenGL wiki article on GLSL Uniforms: “They are stored in a program object.” It’s generally considered something to be so obvious that nobody has to say it.

It could be in the introductory sections of the spec because it (the spec) is very clear about several concepts up to a certain point in the text.

Of course I’m well aware, that’s not the job of a spec, it does not have to be an introductory text necessarily but it is already one for several concepts in its introductory passages.