Skip to main content
GameDev.net gamedev.net
🔒 Locked

displaylists or drawelements?

Started by yckx Feb 14, 2003 at 8:23 PM 9 replies 850+ views
Original Post
yckx
yckx
I''ve heard of speeding up rendering via display lists, and glDrawElements. Which is generally faster for static geometry? Is there a cross over point at which one becomes more efficient than the other? Basically, I know how to use both methods, I just don''t know the relative merits of each. Thanks yckx
q2guy
q2guy
Generally, for the actual 3d cards, is faster the vertex arrays in opengl, vertex buffers in d3d
Mihail121
Mihail121
Hey.I want to ask something.I use combined methods(disp lists & verte arrays).Isn''t that faster???

The PAIN is coming...this summer!!!In cinemas everywhere.
zedzeek
zedzeek
>>use combined methods(disp lists & verte arrays).Isn''t that faster???<<

no, what u need to do is write a simple test app yourself + time all the various methods (will take about 1/2 hour to do)

*note on hardware t+l cards geometry throughput aint normally the bottleneck
*this is no one method that is always quickest on all cards

http://uk.geocities.com/sloppyturds/kea/kea.html
http://uk.geocities.com/sloppyturds/gotterdammerung.html
Promit
Promit
In general , display lists are the fastest for static geometry. You can never guarantee anything though...
SlimDX | Ventspace Blog | Twitter | Diverse teams make better games. I am currently hiring capable C++ engine developers in Baltimore, MD.
James Trotter
James Trotter
Using Display Lists and Vertex Arrays?? You can''t use both at the same time! At least you can''t use glDrawElements() or glDrawArrays() inside the glBeginList(), and glEndList()...
orbano
orbano
i think using gldrawelements is faster than using displaylists (according to my tests). and you can later acelerate it with using object buffers. (i''ve just started learning about these methods, they look pretty powerful)

"Knowledge is no more expensive than ignorance, and at least as satisfying." -Barrin
"Knowledge is no more expensive than ignorance, and at least as satisfying." -Barrin
Ingenu
Ingenu
From nVidia OpenGL Perf FAQ 2, faster to slower:

-DrawElements/DrawArrays Using wglAllocateMemoryNV(size,0,0,1)
-DrawElements/DrawArrays Using wglAllocateMemoryNV(size,0,0,.5)
-Display Lists
-DrawElements using Compiled Vertex Arrays (glLockArraysEXT)
-DrawElements and DrawArrays using Vertex Arrays with Common Data Formats.
-Immediate Mode
-All Other Vertex Arrays

-* So many things to do, so little time to spend. *-
-* So many things to do, so little time to spend. *-
PlasmicSoup
PlasmicSoup
I''m looking into this kinda deal as well, so whats wglAllocateMemoryNV? I need a book... *clutches head*

-plasmicsoup
Gilgamesh Games
-plasmicsoup
technobot
technobot
quote:
Original post by James Trotter
Using Display Lists and Vertex Arrays?? You can''t use both at the same time! At least you can''t use glDrawElements() or glDrawArrays() inside the glBeginList(), and glEndList()...


Ehm... actually, you can do that. The array pointers get direferenced as you build the display list, and the transformed or whatever (depending on the driver''s implementation) vertices are stored in the DL as if you were making a series of glVertex calls.



Michael K.,
Designer and Graphics Programmer of "The Keepers"



We come in peace... surrender or die!
Michael K.
yckx
yckx
Thanks to Ingenu for posting that run-down.

quote:
Original post by PlasmicSoup
I''m looking into this kinda deal as well, so whats wglAllocateMemoryNV? I need a book... *clutches head*


From my websearch last night, wglAllocateMemoryNV is what you use when using nvidia''s vertex array range extension. I couldn''t find a whole lot on it, other than the paper at nvidia''s site. Unfortunately, I''m running a Radeon, so I''d have to use their extension (vertex array object), for which I found even less documentation.

Either way, I''ve not really started using extensions yet, so it seems display lists are the way to go for me. I''m rendering pretty simple stuff, many copies of a handful of different objects, and I wanted to see if there was a faster way of doing it. Thanks to all for your replies.

yckx

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.