display lists

when I make my entire program run from display lists it doesn’t run any faster. What gives? These are big objects with a lot of vertices, slowing down rendering to 20-30fps. Shouldn’t this have increased when I made it run from display lists?

First of all, make sure you have enough memory.
Display lists can easily double your apps memory footprint depending on implementation.

Secondly, i found display lists seem to provide little speed boost, on a variety of hardware.
Everybody, espouses the same old theory about display list speed, but i see not if it.

The best speed, seems to come from Vertex buffer object + Interleaved array + glDrawArray. I saw my fps tripple with this method.

Read this, toward the end it has an example that helped me get started.
http://oss.sgi.com/projects/ogl-sample/registry/ARB/vertex_buffer_object.txt

considering I have 32 megs on the Vcard, at least some of the models should be able to fit on there, don’t you think? Each object is only around 1000 vertices, so I don’t think it would blow up so huge it was over 32 megs.
how do you check anyway?

oh thanks, I didn’t see your text in small print the first time.

oh thanks, I didn’t see your text in small print the first time.

What I meant by physical footprint is you total system memory. That is the memory you app indicates in the task manager. If you do not have enough memory you could cause swapping from disk thereby slowing you down.

However, like I said, display lists seem to do little. I have tried them in numerous situations, ie different hardware, different models. They either do not improve performance or actually hurt it.

From what I heard, the best way display lists may work is if you break your model down into smaller pieces. Then the driver can better manage your data.

Also make sure you do not use

GL_COMPILE_AND_EXECUTE!!! This will slow you down greatly!

GL_COMPILE_AND_EXECUTE!!! This will slow you down greatly!

Hi!

I wish to know why it will slow down? if I am doing GL_COMPILE_AND_EXECUTE just for first rendering and then for further renderings just calling that display list. I mean, it should not slow down except for the first rendering.

  • Chetan

They do not dewscribe why this is the case. Probably, the gl_compile_execute path has not been optimized. Almost everyone agrees on this fact. If you do this you will most likely get a deceleration of your rendering.