Display Lists vs. Vertex Buffers

Started by
20 comments, last by Grain 18 years, 11 months ago
Hi there! I'm trying to find the fastest way to render a height-map in my game and have been experimenting with Display lists and Vertex Buffers. However, I have found that different graphics cards will perform differently; i.e. I get faster performance using glDrawElements over display lists on my development machine, but on my gaming pc, using display lists instead of glDrawElements, is many times faster (about 7-8x!). I'm guessing the above behaviour is down to the drivers of the respective graphics cards, but is there a way of guaranteeing using the method that'll guarantee I'll get the best performance? Either by somehow merging the two, or maybe another way I haven't used? I've tried using a call to glDrawElements within a DisplayList, but on some machines it doesn't even render. Thanks.
Advertisement
VBOs > Display Lists > DrawElements. I'm not sure, but my experience.
VBOs, looks interesting. NeHe has a tutorial on it and says it can up-to-triple framerates, so I'll give that a shot!

Thanks.
Just grab the spec from the extension registry, it's conclusive enough to be able to implement it. ( GL_ARB_vertex_buffer_object ).
If at first you don't succeed, redefine success.
If it is possible, and you don't care about code complexity rather raw speed, then I'd say you should detect what card it is use lists or arrays accordingly. To me, this is too extreme. I think that display lists are usually faster, so I use them always on static models/terrain. But if the tarrain or whatever is animated, then you'll need the vertex arrays instead. That is how I base my decision.


If im not mistaken VBO's are supposed to have a clear advantage on modern cards (id extend that to gf4 and up) but then again ive been wrong before

cheers
-Dan
When General Patton died after World War 2 he went to the gates of Heaven to talk to St. Peter. The first thing he asked is if there were any Marines in heaven. St. Peter told him no, Marines are too rowdy for heaven. He then asked why Patton wanted to know. Patton told him he was sick of the Marines overshadowing the Army because they did more with less and were all hard-core sons of bitches. St. Peter reassured him there were no Marines so Patton went into Heaven. As he was checking out his new home he rounded a corner and saw someone in Marine Dress Blues. He ran back to St. Peter and yelled "You lied to me! There are Marines in heaven!" St. Peter said "Who him? That's just God. He wishes he were a Marine."
the only way to know is to test, VBO's and DLs are both fast
on nvidia hardware DL's have the advantage of doing a test beforehand to see if the stuff in the DL is onscreen
ive personally achieved over 5 billion tris/sec (eat shit ps3 :) ) with DL's and something like 150million with VBO's
Quote:
ive personally achieved over 5 billion tris/sec (eat shit ps3 :) ) with DL's and something like 150million with VBO's


Are you sure the VBO still fit on your vram? Could you post some more details on your benchmark.

AFAIK, VBO should be far more efficient since you don't need to get them over the bus. They are on the gfx card already und you just have to pass the rendering commands. So unless your driver does some dirty tricks display list should be slower and cpu utilization higher. Please correct me if I am wrong.
Quote:Original post by nefthy
Quote:
ive personally achieved over 5 billion tris/sec (eat shit ps3 :) ) with DL's and something like 150million with VBO's


Are you sure the VBO still fit on your vram? Could you post some more details on your benchmark.

AFAIK, VBO should be far more efficient since you don't need to get them over the bus. They are on the gfx card already und you just have to pass the rendering commands. So unless your driver does some dirty tricks display list should be slower and cpu utilization higher. Please correct me if I am wrong.


AFAIK, display lists are stored in the graphics cards memory as well.
---Mikael Lax
i always thought that display lists are compiled and stored in the vram

at former times they where used to create texture objects


@zedzeek : i am always a little bit confused about billion and million in german million is 10^6 and billion is 10^12 and "german: milliarde" is 10^9 whats bigger in english million or billion?
http://www.8ung.at/basiror/theironcross.html

This topic is closed to new replies.

Advertisement