I've encountered what looks to me like a performance oddity: with vertex lighting ON, immediate mode rendering is slightly faster than VBO or BuildList, with lighting OFF, the situation reverses.
By "immediate" I mean specifying triangles with glBegin/glNormal/glVertex/glEnd, while "BuildList" use a build list made from the "immediate", and "VBO" uses straight indexed vertex arrays and VBO buffers.
Here are the figures I get (GF3, Det 45.23, AXP 1800+) for 28000 triangles in a tristrip (all visible, none gets culled), only one omni light is in the scene:
- immediate mode : 220 FPS
- buildlist/VBO : 200 FPS
Lighting OFF: (aka glDisable(GL_LIGHTING))
- immediate mode : 340 FPS
- buildlist : 520 FPS
- VBO : 510 FPS
If the triangle rate with lighting OFF looks not too bad, with lighting ON, the VBO/BuildList performance is somewhat depressing... Any idea why VBO would perform slower than immediate mode calls when the only difference is lighting being ON?