As the title says, do the drivers optimize in some way idempotent operations on the opengl state machine?
For example, what if i rebind the same buffer to the same target two times?
glBindBuffer(GL_ARRAY_BUFFER, buf_id)
...
...
//No previous binding operation on the target, this should be idempotent
//and ideally with no cost.
glBindBuffer(GL_ARRAY_BUFFER, buf_id)
The same questions goes with Vertex Array Objects (glBindVertexArray), shaders (glUseProgram) framebuffers etc..