Buffer Object

Started by
2 comments, last by GameDev.net 17 years, 10 months ago
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 = 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
{
public:
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
Advertisement
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?
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.
These couple of links might help with NVidia drivers.

http://home.comcast.net/~andrex/Debian-nVidia/ -- debian specific, but illustrates the basic process for using NVidia's installer.

http://www.nvnews.net/vbulletin/forumdisplay.php?s=&forumid=14 -- 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.

~Katie

This topic is closed to new replies.

Advertisement