I have an application running on Windows 2000 with nVidia FX1000 (driver version 53.03). I have recently experimented with VBOs to render lines. I have made sure that buffers are loaded only once and that the data is not modified. I make a call to bind the buffer every frame. I have several buffers.
I have observed the following performance problems.
- If I use glArrayElement with VBOs the frame rate drops down to 0.2fps. The same code without the VBOs gives me 30fps. If I use glDrawElements in conjunction with VBOs the frame rate goes up to 45fps.
- If the databuffer that I bind to VBO is larger than a certain size (I haven’t yet figured out what size causes the problem) the frame rate drops down to 0.2fps.
I have the following questions.
- Why is use of glArrayElement causing slow down with VBOs? Shouldn’t the same code run faster with VBOs than without them?
- Is there a limitation on the size of the buffer that I can have? Should I be somehow querying the system for the maximum buffer size and live within that?
- Is there any limitation on the number of buffers I can have in the application?
- Should I be “unbinding” the buffer (by binding buffer 0) once I am done with it. I have noticed crashes if I try to specify a valid data pointer with glVertexPointer without “unbinding” previously bound buffer.
- I am using GL_ARB_vertex_buffer_object extension. Would this continue to work in OpenGL 1.5? nVidia’s latest driver has OpenGL 1.5 support.
Thanks.