Display List vs VAR, VAO, and VBO

Question: For static geometry, can the latest nvidia and ATI drivers store DisplayLists in AGP and/or video mem?

Or will VAR, VAO, (and soon VBO!) always be faster and why?

I have just finished porting my static terrain tiles to use VAO, and am going to code support for VAR - but then I thought why can’t the driver just store a displaylist in AGP just as easily?

Thanks again for any insight

Display lists peak at around 48Million unique vertices/s on my Radeon 8500LE. That’s exactly the same speed as VAO. So I’d say yes, go ahead

Display lists have to be completely general, so they can be hard to optimize. The docs I have seen from ATI and nVidia recommend using VAO instead of display lists.

I’m agree that we should use VBO instead of display list, but what’s about overcalling glDrawElements ? I mean, nvidia writes every year at the GDC a paper for D3D optimization, and it always talk about batching drawprimitive. I suppose the same problem appears with OpenGL, doesn’t it?

Arath

It applies to OpenGL as well, but less since the API cost is smaller in OpenGL. If you’re rendering less than around 130-150 triangles per DrawElements, you’re probably CPU-limited. Execellent info on the importance of batching can be found here .

I’ve done some testing with this, and VBO is significantly faster than display lists in pretty much every case. The only time this isn’t true is when you’re using a non-native vertex format.

Originally posted by harsman:
It applies to OpenGL as well, but less since the API cost is smaller in OpenGL. If you’re rendering less than around 130-150 triangles per DrawElements, you’re probably CPU-limited. Execellent info on the importance of batching can be found here .

It doesn’t really offer any practical solutions to this, does it?

Well, the practical solution is to batch more Or maybe I misunderstood you. the point of that document is just that if you make lots of drawing calls you’re probably CPU-limited, thus to get better geometry performance make less calls. As an alternative, make the same number of calls but increase the number of triangles “for free”.

Originally posted by Humus:
I’ve done some testing with this, and VBO is significantly faster than display lists in pretty much every case.

Humus, Im having problems getting any performance gains at all using VBO, would you care to give me a hint on what I might be doing wrong?
(Code at the end of VBO thread)

Cheers / Tack

[This message has been edited by fritzlang (edited 03-23-2003).]