Bad extension support

Discuss programming topics that involve the OpenGL API.
Post Reply
Labman
Posts: 62
Joined: Fri Nov 05, 2004 2:39 am
Location: Brisbane, Australia
Contact:

Bad extension support

Post by Labman »

Why say you support VBO but then don't actually support the function use.

When I use the glGenBuffers it just returns 0 which means no buffer. Nice work VIA, you guys are awesome!
revelator
Posts: 2621
Joined: Thu Jan 24, 2008 12:04 pm
Location: inside tha debugger

Post by revelator »

heh funny that you mention it i actually had the same experience a while back with the same function. actually in something as old as phoenix quake.

even the newest compiler on the newest platform os tells me that this function is null and void :lol:
Labman
Posts: 62
Joined: Fri Nov 05, 2004 2:39 am
Location: Brisbane, Australia
Contact:

Post by Labman »

Now its returning a valid buffer id but it segfaults when it tries to render the vbo :(
Spike
Posts: 2914
Joined: Fri Nov 05, 2004 3:12 am
Location: UK
Contact:

Post by Spike »

What happens if you use self-chosen ids?
Labman
Posts: 62
Joined: Fri Nov 05, 2004 2:39 am
Location: Brisbane, Australia
Contact:

Post by Labman »

Just thought I should say that I was a bit quick to blame S3 here, was some weird stuff caused by the automatic opengl extension loading lib I was using. That and glBufferData and glBufferDataARB are not the same function. One works and one doesn't.

I've got it all working now but I didn't get any speedup from it :(
mh
Posts: 2292
Joined: Sat Jan 12, 2008 1:38 am

Post by mh »

Labman wrote:Just thought I should say that I was a bit quick to blame S3 here, was some weird stuff caused by the automatic opengl extension loading lib I was using. That and glBufferData and glBufferDataARB are not the same function. One works and one doesn't.

I've got it all working now but I didn't get any speedup from it :(
Are you locking and refilling it every frame? That's not good for VBOs, for the same reason as texture uploads during runtime aren't good. What you need is one single big VBO containing all of your static geometry (verts and texcoords don't change), then render each visible surfs from the surfs offset in that. Everything else needs to be done without a VBO. Even with the most optimal strategy (including use of shaders for any texcoord modification you do), a hardware VBO will only give about 10% speedup on Quake owing to the BSP architecture, so it's probably not worth it. Other apps with different architectures may give better or worse results.
We had the power, we had the space, we had a sense of time and place
We knew the words, we knew the score, we knew what we were fighting for
Labman
Posts: 62
Joined: Fri Nov 05, 2004 2:39 am
Location: Brisbane, Australia
Contact:

Post by Labman »

I upload the VBO once at the start of the application, I think that the lack of dedicated graphics memory is more likely the reason for no speed ups however.
mh
Posts: 2292
Joined: Sat Jan 12, 2008 1:38 am

Post by mh »

Labman wrote:I upload the VBO once at the start of the application, I think that the lack of dedicated graphics memory is more likely the reason for no speed ups however.
Yeah, that would be correct. I've found the same in D3D. It's only really worthwhile on a hardware T&L card, and only really usable if you can modify verts and texcoords using shaders (otherwise you're stuck with totally static and scrolling textures, water warps, and suchlike won't work at all).
We had the power, we had the space, we had a sense of time and place
We knew the words, we knew the score, we knew what we were fighting for
Post Reply