Display Lists

Quick question… When I use display lists my performance drops by a factor of 8. (from 9.5 fps to about 1.2 fps). Any ideas why?

I just gen a few lists and compile just like in Nehes tutorial.

Hi !

I have no idea, but check your code so that you didn’t mess something up, it sounds like you made a mistake somewhere.

Display lists are faster, even in software mode, the kind of different in speed could indicate that you have changed something that makes it go from HW to SW rendering maybe…


yeah listen to mike, display list are supposed to increase performace so the speed decrease is probably your fault =)

And remember to check that you create display lists just once. You don’t need to create them every frame. I might cause such a big performance drop!

Part of my frame is executed in immediate mode… could this be the problem?

Thanks for the replies!

Well, your framerate was around 10fps, which leads me to believe one of two things:

  1. Your computer is pretty slow anyway.
  2. You have large amounts of geometry/textures.

If it is #2, how much of it are you putting in display lists? DL’s take up lots of memory (typically video memory), which means that the driver will have to swap DL’s and textures more frequently, thus killing performance.

I figured out why Iit was dropping so low but I still get only 8-10 fps.

My computer certainly isn’t the latest thing available I agree but still its a Pentium 650 with an ATI Rage 128 graphics AGP adapter (about a year and a half old).

As far as textures go I am probably rendering about 2500 textures (of 32x32 each). I am not sure where I should set the limit. The strange thing is that I comment out half my code and the frame rate still does not change significantly.

Switching textures is expensive, in fact most state changes are expensive. Changing texture 2500 times per frame is going to kill performance. Sort what you draw by texture so you don’t have to do redundant switches and batch up many of your 32x32 textures into a larger one and offset tex coords accordingly. That should speed things up somewhat.