VAO slower than not using it

Started by
7 comments, last by modus 14 years, 7 months ago
Quote:Original post by samoth
No experience here, but a quick Google brought me to the OpenGL forums where there's a thread with pretty much everyone agreeing that VAO is 100% the same speed-wise as not using it, making it a total waste of time using.

I don't really agree with this. While not stellar, I have experienced a performance increase using them, of about 10% in CPU limited cases. But this may very well depend on the exact usage scenario. In my case, I was sourcing a large amount of vertex attribute streams, so that the old style per-frame call of multiple glVertexAttribPointer would show a significant impact. I had about 1.2m faces visible in the frame, distributed over about 500 VBOs.

And of course you won't notice any impact if you're not CPU limited. If, for example, you're fragment shader or memory bandwidth limited (which is often the case), then VAOs speedup will be about zero.
Advertisement
Yep, and besides the general idea is to expose an opportunity for an optimization, not to mention a potentially significant user convenience.

Look at FBOs - same thing. You could create single FBO and bind all targets to it or create one for each set of targets and bind the whole enchilada on demand. Better? Worse? Dunno. Test and decide for yourself. (D3D has no notion of a Framebuffer object, at least at the API level; but I suppose GL API revolutions happen infrequently enough to warrant the long view where possible; even if, as an outsider, you need a telescope to fully appreciate it sometimes ;-)).

This topic is closed to new replies.

Advertisement