Displaylist and VBO test failed on NV6800!

I used to have a rendering preformence test using 3 different drawing method: normal opengl draw, displaylist and VBO. It works well on my old ATI 9800Pro, where VBO and displaylist is much fast then normal drawing (when rendering a static scene).

Today I tested on my new Nvdia 6800. The frame rate for 3 different drawing methods are almost the same!

Any thoughts on these? Thank you!

Yong

Maybe your tests aren’t stressfull enough. The 6800 is leaps and bounds faster (and just more efficient) than your 9800. Could you provide details about your tests exactly? I’ve had many demos where using VBO and the like not make a bit of difference b/c I wasn’t geometry (vertex) limited.

-SirKnight

Agreed. The you have to be careful that you’re not CPU limited on the latest high end graphics hardware. If you’re not keeping the graphics pipe fed constantly, it won’t matter so much how efficiently it can render the stuff that you’re feeding it.

Thanks for the replies. Here is some detail about my VBO.

During initialization, I created 2 VBO, one for vertex and one for normal, as follows:

glGenBuffersARB(1, &vertexbufferID);
glBindBufferARB(GL_ARRAY_BUFFER_ARB, vertexbufferID);
glBufferDataARB(GL_ARRAY_BUFFER_ARB, m_form->numvertice*3*sizeof(float), m_form->mesh, GL_STATIC_DRAW_ARB);

glGenBuffersARB(1, &normalbufferID);
glBindBufferARB(GL_ARRAY_BUFFER_ARB, normalbufferID);
glBufferDataARB(GL_ARRAY_BUFFER_ARB, m_form->numvertice*3*sizeof(float), m_form->vnormal, GL_STATIC_DRAW_ARB);

Then as rendering time, I use vertex array and normal array to draw them:

glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_NORMAL_ARRAY);

glBindBufferARB(GL_ARRAY_BUFFER_ARB, vertexbufferID);
glVertexPointer(3,GL_FLOAT,0,0);
glBindBufferARB(GL_ARRAY_BUFFER_ARB, normalbufferID);
glNormalPointer(GL_FLOAT,0,0);
glShadeModel(GL_SMOOTH);
glPolygonMode( GL_FRONT_AND_BACK, GL_FILL );
glDrawElements(GL_TRIANGLES, 3*m_form->numfaces,GL_UNSIGNED_INT,m_form->findices);

Any comments on it? Thanks.

Ok your code (with a quick glance) looks to be in order. But the key thing here is how many triangles are you rendering per frame?

-SirKnight

I have a test about 50,000 triangles. The frame rate is all about 75 on my NV6800.

I remembered that it is about 500 frame/sec using VBO on my old ATI9800Pro.

Yong

The frame rate is all about 75 on my NV6800.
What’s your monitor refresh rate? Sounds like you’re waiting for vsync.

Right! My screen refreshing rate is 75!

How to get rid of this vsync waiting? Thanks!

Yong

Got it! Change some display settings! Thanks a lot!

Yong

Ah vsync…yeah that’ll do it. :slight_smile:

-SirKnight