Archived

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

shadow_bobble

discussion -- arb_vertex_buffer_object

Recommended Posts

Can people please share their experiences with this extension? I am particularly interested in implementations that store vertices in a VBO on the graphics hardware, and VBO''s containing indices elsewhere (AGP/sys). I currently have a terrain engine pumping 10 million tris/sec with display lists. From what I read, the theoretical max of my current graphics card, 9800 pro, is > 400 million tris/sec. I know theoretical limits can''t be approached in real scenes, but perhaps 50-60 million would be possible. So, has anyone used VBO''s for similar tasks? Are they significantly faster than display lists? thank you

Share this post


Link to post
Share on other sites
geforce fx 5600 ultra... 7 million triangles per second, but using more or less expensive arb_vertex_program

if you also store your indices on the server''s memory, it is noticealbe faster... else it''s "just" about 20% faster than display lists

Share this post


Link to post
Share on other sites
hm.. my last terrain pushed around 10mill/second on a gf3, with my new version i screwed up and reduced it to 8.5mill/sec (at least requires a lot less memory and is fillrate limited with texturing anyway). this is by using var/vbo.

experiences.. well, it works. if youre used to var it might annoy you that you cant just treat it like a normal array and need some extra work. just find it in the extension registry and scroll down to the examples.

there might be some issues depending on driver/hardware combination. weird thing like with nvidia where allocating less than x mb wont be able to get video memory or less confusing behaviour, where you cant allocate more than y mb at once. so if you find yourself with less than a nice performance increase something might be foul.

Share this post


Link to post
Share on other sites
Thanks for the replies guys.

I think my current implementation is memory-bandwidth limited because the terrain supports dynamic LOD and is constantly changing what it sends to the card (swapping display lists). I tried it on a slower graphics card + same CPU and got 10 Mtris/sec again.

I was hoping that swapping to VBO would remove this limitation.

From reading the arb_vertex_buffer_object extension specifications, it sounds like it could result in enormous benefits. From your experiences, it sounds like maybe not.


anyone else?

Share this post


Link to post
Share on other sites
Best results I had were with my terrain engine. It pushed 30-40 million triangles per second on GF4-4600. In pure VBO test a got about 50-60 mtris/sec. But be very careful on nVidia cards. In some drivers this extension is totaly broken (=no speed-up).

You should never let your fears become the boundaries of your dreams.

Share this post


Link to post
Share on other sites
shadow_bobble : I have something simmilar to Chunked LOD. I added a few improvements/modifications. Those numbers (30-40) are when running in very high LOD setting. (Image)

You should never let your fears become the boundaries of your dreams.

[edited by - _DarkWIng_ on October 23, 2003 4:05:42 PM]

Share this post


Link to post
Share on other sites
I got roughly double the triangle throughput for a brute force landscape implementation using VBO with indexed quad strips (as compared to standard indexed vertex arrays). However, this improvement dropped depending on the number of quads I was sending with each call to glDrawElements. The optimal number was around 32x32 to 64x64. I had some more specific numbers, but it was a while ago, and I lost the piece of paper I scribbled them on.

One problem I had though was that if I enabled ansiotropic filtering, the performance became roughly equal to that of standard VAs. This may have been fixed with subsequent driver releases though.

I''m using a 9700 Pro BTW.

Share this post


Link to post
Share on other sites
Thanks for the info benjamin bunny. Double the speed of vertex arrays would be great!

As a side note, does anyone know what gen hardware was the first to support VBO? I have a friend with a geforce 3 Ti 500 that doesn''t support it. Are geforce 4/5 and Radeon 9x00 the first?

thank you

Share this post


Link to post
Share on other sites
A GeForce 3 should support VBOs as far as I know. Perhaps he needs new drivers?

And DarkWing, that's a very nice looking scene in general

[edited by - MikeMJH on October 23, 2003 10:43:25 PM]

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
Yeah, the support is driver specific not card. I have a GeForce2 MX (yea yeah I know) and I have had the extension since the Det 45.?? driver, but I do not gain any speed over display lists. This is probably due to the fact that I am currently fill rate bound on my crappy card. Also I noticed each VBO on my card/driver can only hold 32KB of data, so I have do some breaking up of my higher poly count objects when building the VBO, not too big a deal but it is a consideration.

Share this post


Link to post
Share on other sites
VBO is supported on all nVidia cards from TNT2 up (but not TNT1). It''s just the matter of drivers. Some of them dont include extension in extension string but still have entry points.

You should never let your fears become the boundaries of your dreams.

Share this post


Link to post
Share on other sites