nV News Forums

 
 

nV News Forums (http://www.nvnews.net/vbulletin/index.php)
-   NVIDIA Linux (http://www.nvnews.net/vbulletin/forumdisplay.php?f=14)
-   -   GL_ARB_vertex_buffer_object (http://www.nvnews.net/vbulletin/showthread.php?t=14200)

crazney 07-01-03 08:50 AM

GL_ARB_vertex_buffer_object
 
Hi There,

I was wondering if anyone had tried out the new(ish) GL extension GL_ARB_vertex_buffer_object..

Its apparantly supported by the new drivers..

glxinfo | grep ARB_vertex_buffer
GL_ARB_transpose_matrix, GL_ARB_vertex_buffer_object,


anyway.. I tried implementing some stuff with this extension... and for some reason the FPS on my particular app almost quartered (went from about 75fps to 25 or so)..

Is this extension currently buggy in NVIDIAs latest drivers (1.0-4363)?.. or am I just doing something wrong?.. Is there any size for these vertex buffers that is 'too big' (is there an optimum size?).

By the way, I'm using a GF2GTS.

Anyone else tried it out? What kind of results have you gotten?

Thanks.

Codeboy 07-01-03 03:01 PM

GL_ARB_vertex_buffer_object
 
I've used it a little bit. Performance was pretty close to using NV_vertex_array_range. How are you using it?

crazney 07-01-03 06:08 PM

hrm, well i'm about to go away, so I'll tell you how i'm doing it on friday when I get home..

But anyway.. I'm using a gf2 (since my gf3 died).. So I got a friend to try it out using a gf4 - he sees about a 4 fold increase in performance.. I see about a 4 fold decrease.

So maybe the gf2 has a buggy vertex buffer implementation?

I'll email nvidia when I get home I guess.

Codeboy 07-01-03 06:37 PM

GL_ARB_vertex_buffer_object
 
Based on some DirectX restrictions on that hardware, I think it might be worth trying interleaving all your vertex data (you can use the stride parameter to gl*Pointer to do this, no need to use glInterleavedArrays) in a single vertex buffer object, and make sure the buffer object contains fewer than 64k vertices -- and use unsigned short indices instead of unsigned int. If your geometry is bigger than this, split it into multiple vertex buffers and multiple glDrawRangeElements calls.

Just some things to try ... HTH. Good luck.

jnygaard 05-20-04 12:52 PM

Re: GL_ARB_vertex_buffer_object
 
Just hooking on to an existing thread... I want to use the extension, extension inquiry tells me that it's available (I have the 5336 driver, running Linux) but for some reason I had to manually extract the prototype from the glext.h file and manually insert it in my program, don't quite understand why, since the file is actually included, but anyway...

The main problem though, is that the linker cannot resolve the proper calls:

bombadil 29>/usr/local/gcc-3.2.1/bin/g++ -L../sisl -L../gluttools -L../utils -L../simpletri -L/usr/X11/lib sisl_view.o auxi.o draw_segments.o lorenz.o read_curves.o read_nurbs_sf.o refl.o sisl_aux.o surftools.o tri_refine.o tri_thin.o trisupport.o -lsisl -lgluttools -lutils -lsimpletri -lglut -lGLU -lGL -lXi -lXmu -o sisl_view
sisl_view.o(.text+0x2303): In function `draw_triangulation(int, int)':
/home/jnygaard/smlc/sisl_view/sisl_view.C:774: undefined reference to `glBindBufferARB(unsigned, unsigned)'
sisl_view.o(.text+0x243b): In function `draw_triangulation(int, int)':
/usr/local/gcc-3.2.1/include/c++/3.2.1/bits/stl_vector.h:261: undefined reference to `glBufferDataARB(unsigned, int, void const*, unsigned)'
collect2: ld returned 1 exit status
bombadil 30>

I simply do not understand what is missing, since everything else seems to work... Any ideas?

jnygaard 05-20-04 01:47 PM

Re: GL_ARB_vertex_buffer_object
 
Ok, I found the problem... Needed to wrap the prototypes in an extern "C" { ... } declaration... That did the trick!


All times are GMT -5. The time now is 03:30 PM.

Powered by vBulletin® Version 3.7.1
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Copyright 1998 - 2014, nV News.