Sign in to follow this  

Buffer Object

Recommended Posts

Hi, I'm trying to do buffer object using Mesa3D 6.4.2 on Fedora Core 5. However, when I call glGenBuffers, it doesn't do anything to the array I put in. For example
GLuint Buf = 0;
glGenBuffers( 1, &Buf );
//Buf is still = 0

GLuint Buffers[5];
for ( int i = 0; i < 5; i++ ) { Buffers[i] = 10; }
glGenBuffers( 5, Buffers );
//all elements are still 10

In other words, glGenBuffers does nothing. I'm using glXGetProcAddress to retrieve the function pointer to glGenBuffers by the way. I put it in a wrapper like so:
class GLHelper
void* GetProcAddr( std::string Name ) { return( (void*)glXGetProcAddress( (const GLubyte*)Name.c_str() ) ); }

When I'm running this code under Windows, everything is ok, except that I use wglGetProcAddress instead. Has anyone has this problem or know how to solve it? Thanks

Share this post

Link to post
Share on other sites
I've had issues with Nvidia's drivers (77.xx, I think) but it's something the newest drivers have corrected I think. The problem was with the version of GLX - glXGetProcAddress is itself, you see, part of an ARB extension. To get it to work I had to use glXGetProcAddressARB, whch worked. You can try it if you want.

BTW, I've never used the pristine Mesa3D library - I've heard it's all done in software, is that true?

Share this post

Link to post
Share on other sites
I tried glXGetProcAddressARB and still doesn't work.

Mesa3D is software if you don't compile with DRI.

How do I get other implementations of OpenGL for Linux other than Mesa3D? I'm still confuse about ATI and Nvidia driver stuff.

Share this post

Link to post
Share on other sites
Guest Anonymous Poster
These couple of links might help with NVidia drivers. -- debian specific, but illustrates the basic process for using NVidia's installer. -- forum for help on these sorts of things.

Basically, you install Mesa and Mesa dev and so on. You then go get the drivers from NVidia and run the installer. It witters away to itself for a while and plonks a new set of shared objects into the right directory and changes the libGL links to point at them.

You can switch between the software and hardware rendering by changing the links. (Although once you have this running, going back to software rendering feels like someone inside the machine is hand-drawing the images..)

You can then set up X11 to use nvidia's X11 driver and everything should be peachy -- it does also speed up X11 (because it can use more of the 2D core than a generic VGA driver).

There are some extra annoyances about needing DRI and DRM and things like that, but if you have a recent kernel it should all "just work". Certainly when I installed Sarge on a box with a 6600, everything installed out of the box.

Recent attempts on a laptop to install ATI drivers have completely and utterly failed for reasons I have yet to have explained to me by either people or the failing software; the DRM module doesn't install and X.Org versions of X11 simply hang the system bus..

Laptops always seem kooky about these things. Every desktop nvidia system I've tried has been minimally annoying.


Share this post

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this