I was reading Valve/nVidia presentation on the lessons learned when Valve ported Source game engine to OpenGL (https://developer.nvidia.com/sites/d...to%20Linux.pdf).

One thing that caught my eye is the statement that VAOs are slower than glVertexAttribPointer an all implementations and it's a recommendation to skip them (page 57). So the question is, why slower?

If VAOs are indeed slower what it's the preferable way to avoid using them on GL3 core where there is no default VAO? Maybe create a single one, bind it once and use it all the time? Will this be efficient?


PS: The presentation is a very interesting reading by the way