VBO and Detonator 45.23 issue?

I have update my detonator drivers this morning (45.23) with my GeForce4 Ti 4200 on a WinXP SP1, Duron 1.2Ghz, 640Mo SDR, and my app using VBO fall down from 68fps to 9. That the same speed than my CVA path (but I have check it use the VBO one). I tested at different lod and it’s always the CVA perfs.

VBO don’t change at runtime they are mostly static (I use many VBO maybe more than 100), there is 3 small streamed VBO create each frame but it isn’t the problem (8µs to create and fill the VBO).
Indices are in a separate VBO too using 32 bits uints (but 16 bits uints give the same), glDrawElements is mainly like: glDrawElements(GL_TRIANGLE_STRIP, count, GL_UNSIGNED_INT, offset);

It’s glDrawElements who cause the troubles, it take an average 120µs CPU time, which is more than before (20µs if i remember correctly).

Has sombody tried VBO with lastest detonator? Is there an option somewhere I have miss?

edit: And even before I found 20µs for glDrawElements is really to much considering than 95% of the geometry is static and probably on the GPU ram.

[This message has been edited by TheSillyJester (edited 08-21-2003).]

I’m also seeing lower performance using VBO on GeForce4 Ti hardware, and with just static geometry, than with VAR. (with an ATI Radeon 9700 Pro, VBO just flies faster than VAO )

I’ve been doing some reading from Google searches, and some people claim that if you keep indices in system memory rather than using a VBO for them, this gives a performance boost on GeForces.

Not sure if this is relevant, useful, or accurate as I’ve not got around to trying it myself, but just thought I’d mention it.

Mark

Yes seems that nvidia is keeping indices in system memory, so it’s as fast as using system memory indices (but not faster, the VBO overhead is really small).
But now, even vertices are stored in system memory even with GL_STATIC_DRAW_ARB usage, that’s really strange. What are they doing?

Originally posted by TheSillyJester:
[b]I have update my detonator drivers this morning (45.23) with my GeForce4 Ti 4200 on a WinXP SP1, Duron 1.2Ghz, 640Mo SDR, and my app using VBO fall down from 68fps to 9. That the same speed than my CVA path (but I have check it use the VBO one). I tested at different lod and it’s always the CVA perfs.

VBO don’t change at runtime they are mostly static (I use many VBO maybe more than 100), there is 3 small streamed VBO create each frame but it isn’t the problem (8µs to create and fill the VBO).
Indices are in a separate VBO too using 32 bits uints (but 16 bits uints give the same), glDrawElements is mainly like: glDrawElements(GL_TRIANGLE_STRIP, count, GL_UNSIGNED_INT, offset);

It’s glDrawElements who cause the troubles, it take an average 120µs CPU time, which is more than before (20µs if i remember correctly).

Has sombody tried VBO with lastest detonator? Is there an option somewhere I have miss?

edit: And even before I found 20µs for glDrawElements is really to much considering than 95% of the geometry is static and probably on the GPU ram.

[This message has been edited by TheSillyJester (edited 08-21-2003).][/b]

yes, I got a huge slowdown with new drivers (4523), on a GeForceFX 5200 Ultra.

I am using VBO with Generic Vertex Attribute Arrays and ARB Vertex Program on a full game engine with a lot of geometry going through.

glAttrib() functions are faster as it stands now… ;<

However Generic Vertex Attribute Arrays / ARB VP without VBO is still decent performance, But still lower than software skinning with granny.

mtm