Advertisement

Speed of GL_ARB_vertex_buffer_object

Started by August 11, 2003 04:48 PM
11 comments, last by Lyve 21 years, 6 months ago
Ok..

this is a complex one, since there are several things that can cause performance issues...

The advantage of GL_ARB_vertex_buffer_object, or the Ati/Nvidia equivalents (which are a waste of time now) mostly comes into play with static geometry. Dynamic data can be sped up if you upload the data before you actually draw from it (so the video card doesn''t need to wait for the copy to complete) but it''s not as significant.

Simply put, it''s also a matter of fill rate. A particle system, for example, is an example of something that VBO won''t help you with at all.

Using standard arrays with glDrawElements, you will be looking at a maximum triangle/sec throughput rate of around about 4-6 million triangles a second (on agp 4x)... This is when there are no other bottlenecks, and fill rate isn''t an issue at all, and the cpu is mostly idle. If you drawing solidly though, and the cpu is busy, etc, then 2 million is a more realistic limit.

That said, if the data is already there for the video card, then it can simply ''go nuts'' and draw away, not having to worry about waiting for the data/cpu. This is where VBO can give you _massive_ speed improvments, getting to a decent chunk of the theoretical speed of the video card... With small triangles, being lit by 1 point light, 1 texture, etc, it''s possible to get a radeon 9500-9800 into the 50-60 million tris/sec area.

The thing is you usually don''t get triangles this small, this is where fill rate is the biggest hit. A quake3-style map, where every pixel is drawn one or two times, is always going to max out at X frames per second, be it showing 3,000 triangles or 30,000. since it fills the whole screen, it''s just because of this, you can generally add a lot of extra detail without much of a performance hit.

As for hardware,
geforce 1 and the origianl Radeon were the first cards to do hardware transform and lighting.
And if the ati card is crashing, it may be a lack of driver support in the version you have, since this is a very new extension.

It should be noted that D3D8+ effectivly forces you to do what this extension does. Which is a very good thing.

| - Project-X - On hold.. - | - adDeath - | - email me - |
I differ.
You can load the data on the fly and still have great performance. my model editor does this. And 4 opengl windows and 81000 poly scene in each is just alittle sluggish.


Bobby
Game Core
Advertisement
quote:
Original post by Lyve
If there''s no speed difference, why does the extension exist? At least a Geforce FX should show a difference I think.


If there is no difference between VAR and VBO, that''s absolutely normal.
VAR is already a vertex throughput improvement.

Anyway, the first NVIDIA drivers I''ve tested did not give any performance boost, when any. But now they seem to be much better.
As a side note, this time ATi was more reactive. That was probably because the VBO extension is closer to the ATI_VAO extension than the NV_VAR one.

This topic is closed to new replies.

Advertisement