Understanding Vertex Array Objects (glGenVertexArrays )
Performance improvements. In many cases, setting up your attributes on the host require a high number of API calls, and an important amount of validation inside the implementation. Doing all those once, and using the VAO allow that work to be amortized. See, for example, Graham Sellers’ analysis for actual data.