Display Lists vs. Vertex Buffers
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.
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.
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 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
cheers
-Dan
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
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 nefthyQuote:
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.
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?
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?
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement