Quote Originally Posted by Alfonse
Keep your changes local and you won't have a problem
Quote Originally Posted by thokra
[..] or some strategy to unbind everything right after usage.
I already said so and personally I haven't done otherwise for a long time.

Quote Originally Posted by Alfonse
I don't see how DSA helps with that.
I never said it did. But you're right, I should have made a more clear separation between setting state(i.e. bind-to-modify) and determining which state has already been set, e.g. the current number of draw buffers.

And what is a "readbuffer".
For me, that's a FBO bound to the GL_READ_FRAMEBUFFER target. Yeah, I know that's ambiguous and usually refers to one ore more attachments. But personally I like to think of an FBO that permits read operations as a read-buffer and one that permits draw operations as a draw-buffer.

My point is that OpenGL hasn't become more transparent just because some state has been thrown out. The remaining state is still as opaque as it has been when matrix and attribute stacks and so forth were still present.