Archived

This topic is now archived and is closed to further replies.

Display Lists and vertex arrays...

This topic is 5975 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hi I’m trying to speed up the rendering part of my engine with the use of display lists or vertex arrays. To see the performance difference between normal ( glBegin(GL_TRIANGLES) ), display list and vertex arrays I made 3 different versions of the engine, and took away all collision detection and other stuff. Now the thing is that I didn’t get any performance improvement at all using VA or display lists. In fact using display list gave a worse result than using the glBegin(GL_TRIANGLES).. and between the VA version and the normal version there was no difference in performance at all. I cant figure out why display lists and VA isn’t faster than glBegin… In the VA version I only have a couple of function calls (glDrawElements) and in the normal version there are lot of function calls(glBegin(GL_TRIANGLES)).. the VA version should be faster.. I have tried change resolution and number of triangles to be drawn but the result is always the same..VA and normal version has the same performance and display list version is a bit slower… Does anyone have a clue why the VA version and display list version isn’t faster than the normal version? My computer is an Athlon 600, GeForce2 Thanks

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
(It has to be asked...)

You aren''t specifiying the display list and/or populating the vertex array every frame, are you?

Share this post


Link to post
Share on other sites
I get a some improvement now... All I do now is render a bunch of textured cylinders with a total of 13000 polygons.
I get about 44-50 fps when I’m using vertex array and 24 fps without vertex array…
But if I decrease the number of polygons to about 2800 there is almost no difference at all between the 2 versions.
How much improvement should u get from using VA?


Edited by - RZ on August 6, 2001 9:00:25 PM

Share this post


Link to post
Share on other sites
RZ said:
[...] with a total of 13000 polygons.
I get about 44-50 fps when I’m using vertex array and 24 fps without vertex array…
But if I decrease the number of polygons to about 2800 there is almost no difference at all between the 2 versions.
How much improvement should u get from using VA?

-

I think that''s the point: there''s little difference when you only have a small number of polygons, but when you have a lot it makes a large difference.

Share this post


Link to post
Share on other sites
hmm..as I said i have taken ALL the the other stuff away...
rendering geometry is the ONLY thing i do.. so what else can be the bottleneck??!..
But I think illuzion is right.. rendering just ~2800 polygons makes no difference using vertex arrays or not..

Share this post


Link to post
Share on other sites
There are different aspects to the rendering pipeline that cause slowdowns. The idea of using VAs and Display Lists helps cut down on time related to sending data to the card, but they don''t really address any of the actual rendering aspects that go on -- fill rates and that other fun stuff. Once you get to a certain point, you''re card is spending its time filling polys on the screen more than waiting for more geometry to draw.

I''m surprised, tho, that you get a performance hit using Display Lists. For static geometry (it is static, right?) nVidia says Display Lists are fastest, I believe...

Share this post


Link to post
Share on other sites
quote:
Original post by RZ
hmm..as I said i have taken ALL the the other stuff away...
rendering geometry is the ONLY thing i do.. so what else can be the bottleneck??!..
But I think illuzion is right.. rendering just ~2800 polygons makes no difference using vertex arrays or not..



u do clear the screen + draw the textured polygons i take it.
try making your window 200x100 big, if the FPS increases quite a bit then u know, you were not geometry bound but fillrate bound.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
You aren''t swapping buffers, are you ? If you do, remove it, since it will synchronize you to the refresh frequency of your screen, that''s not very good for performance measures... And remove any glClear().

Share this post


Link to post
Share on other sites
Check this Siggraph course by Mark Kilgard. You probably want to look at the Tuning your Opengl Application chapter. It''s a couple years old but still pretty useful.

http://reality.sgi.com/blythe/sig99/advanced99/notes/node343.html

Share this post


Link to post
Share on other sites