display lists

In option for compile-and-execute for display lists: by “execute” do they mean that it stores the completed calculations that you specified in the display list or does it mean that the points are sent to the buffer on the creation of the list?

What’s the difference between the compile and compile-and-execute options? Will compiling and executing save me time?


Purely compiling the display list will deconstruct the primitives (depending on the driver) without actually rendering it. Compile and execute will render once the list has been compiled.

Obviously, you should compile only and then render when required rather than going through the slow process of compilation each time you want to render -

Generally, using COMPILE_AND_EXECUTE is a bad idea. Just compile once and then render.

So when I make a display list, and I calculate the normals during the course of making the display list, are the normals already computed when it’s compiled? Or is it doing this at run time?

If I use glScale in my display list, and turn on the “allow rescale normal” option only for the display list (and disable it either in the display list or after it’s created), would this do all the calcuations during compile or during execute time?

My code runs slow, and I’m wondering if its because I have the allow rescale normals option on, and whether I can make these calculations either before or in the display list, and then turn off the rescale normal attribute for the rendering portion of my program. Is that possible? Do I need to compute everything before I make the display list, or can I compute it during the creation of the display list?


Enabling or disabling rescale normals probably has very little effect on your performance. If you believe it does affect performance, why don’t you try disabling it and see if performance goes up? Roughly how many triangles are you drawing per frame, at what fps and on what hardware? And how are you submitting vertices, with immediate mode inside a display list? If you’re geometry limited (which is just my guess, it’s hard to say without more information) turning off local viewer, two sided lighting and decreasing the number of lights enabled will probably help performance.