Performance Test 2

First see Performance Test 1

Last night I made vertex arrays and glDrawArrays in display list without glMaterial. The results were the same as DLWM. This means that glDrawArrays is just a simple loop calling glVertex and other vertex functions without any special optimization. My conclusion is that vertex arrays are useless as performance gainer if used in this manner.

Your comments, please??

vertex arrays / vbos are a blast
display lists are faster, especially on nvidia, but vbo can get equal speed and still be “deformable”

indexed geometry is the one that performs best afaik, even better when tri strips…

gldrawelements
or gldrawrangeelementsext

when you put the vertex array on the agp mem using VBO it would be even faster. and try to batch geometry, ie minimize gldraw calls but draw as much as possible when you draw it

Did you test it on a Rage 128? A Radeon X800? A Geforce 2? A Geforce FX 6800? Everything inbetween?

I think you’ll find that different GPUs/drivers are optimized differently.

what does DLWM mean? display list without material?
if you use VertexArrays inside a display list, they will be copied completely into vram or any other fast accessible memory. you can modify the vertex data later but the display list call will not take care of this modifications. there is no performance gain to glVertex calls inside a display list, but only, because you can’t render any faster on most cards. display list are static, all state changes are precompiled and so on.

try both methods outside display lists and start your benchmarks again.

you are right: vertex arrays are useless as performance gainer if used in this manner.