Well... This is actually quite odd. I have a VERY simple scene with only a single model in it (1206 faces, before tessellation. This would, in this case, result in 2400 triangles.). The model has no texturing what so ever, only vertex positions. Well... If I now render the model using glVertexAttrib*() procedures (index 0) it's not that slow (something like 300-400 fps with the simple model) BUT when I switch to vertex buffers and use "glArrayElement()" I get down to 3-4 fps! What could be happening here? I know that the bottle neck is in the "glArrayElement()" loop and the only other thing used in the loop is a simple triangle fetch of type "(pTri + index)" so that's not the problem. Note that I don't even use a material here. No textures, no nothing. When using a GLSL shader the speed stays the same.

I use VBOs on an ATI Radeon 9800 Pro here. Haven't tried element buffers on this project yet, but I think that they wouldn't make that much of a difference... Or does the glArrayElement() function fetch the vertex data from the buffer and then specify it explicitly? I doubt that...