What exactly do display lists do?

I used an interleaved VBO to render a model. The model has just one texture. There shouldn’t be any state changes to render the model. The whole thing is drawn in one batch. I noticed that if I compiled everything into a display list, my performance was dramatically better-- like 9 ms instead of 53 ms. What exactly do display lists do? Can I recreate that without display lists? What are some of the stupid things I might be doing so the non-display list path is so slow?

Thanks for your thoughts…

Display list compile your instructions for future use istead of sending each instratcion state manip. to the card. they will be stored there. Faster, but there are more faster way, and i guess they are deprecated in the new model

Right, I’d like specifics on the internal operation of display lists and how to reproduce their performance without using them…

So I wasn’t actually using VBOs. I was using client arrays. Once I switched to VBOs, the performance was almost the same as with display lists.

Glad to hear that :slight_smile: , otherwise my benchmark results would be less cursory:
http://www.opengl.org/discussion_boards/ubbthreads.php?ubb=showflat&Number=255602#Post255602

Display lists can store all sorts of GL commands, unlike VBOs which are for vertex attributes/indices.
The driver can make a VBO for the geometry you try to put in a DL and optimize the heck out of it but for other GL commands, it would store commands in RAM so that it can play back the commands when you call glCallList.

i guess they are deprecated in the new model

Yes, DL is deprecated. It is a matter of just doing rendering 1 way instead of I don’t know how many ways old OpenGL has.

It is interesting that display lists are being introduced to DX now though.