Missing functions on Linux Amd64

My calls to glGenBuffers are failing on an Amd 64 Linux box. I check the function with gl.isFunctionAvailable which returns true, but then it dies on the actual call. It runs fine on a windows and mac box.

JOGL 1.1.0-rc1
ATI Radeon X800 XT, GL_VERSION 2.0.6234
has GL_ARB_Vertex_buffer_object

Test code showing the issue.

import java.awt.;
import java.awt.event.
;

import javax.media.opengl.;
import com.sun.opengl.util.
;

public class Tester implements GLEventListener {
public static void main(String[] args) {
Frame frame = new Frame(“Gear Demo”);
GLCanvas canvas = new GLCanvas();

canvas.addGLEventListener(new Tester());
frame.add(canvas);
frame.setSize(300, 300);
frame.show();

}

public void init(GLAutoDrawable drawable) {
// Use debug pipeline
// drawable.setGL(new DebugGL(drawable.getGL()));

GL gl = drawable.getGL();

System.err.println("INIT GL IS: " + gl.getClass().getName());

System.err.println("Chosen GLCapabilities: " + drawable.getChosenGLCapabilities());

boolean funcAvailable = gl.isFunctionAvailable("glGenBuffers");

System.out.println("function: " + funcAvailable);
if (funcAvailable) {
    // Seems on some systems this still fails on the glGenBuffers call, so check
    try {
        int[] vbo_id_tmp = new int[1];
        gl.glGenBuffers(1, vbo_id_tmp, 0);

        System.out.println("Success!");
    } catch(Exception e) {
        System.out.println("VBO's reported but not really available");
    }
}

}

public void reshape(GLAutoDrawable drawable, int x, int y, int width, int height) {
GL gl = drawable.getGL();

float h = (float)height / (float)width;

gl.glMatrixMode(GL.GL_PROJECTION);

System.err.println("GL_VENDOR: " + gl.glGetString(GL.GL_VENDOR));
System.err.println("GL_RENDERER: " + gl.glGetString(GL.GL_RENDERER));
System.err.println("GL_VERSION: " + gl.glGetString(GL.GL_VERSION));
gl.glLoadIdentity();
gl.glFrustum(-1.0f, 1.0f, -h, h, 5.0f, 60.0f);
gl.glMatrixMode(GL.GL_MODELVIEW);
gl.glLoadIdentity();
gl.glTranslatef(0.0f, 0.0f, -40.0f);

}

public void display(GLAutoDrawable drawable) {
}

public void displayChanged(GLAutoDrawable drawable, boolean modeChanged, boolean deviceChanged) {}
}

Somebody recently reported that JOGL’s “DRI hack” class isn’t working properly with ATI’s proprietary drivers. We’re looking into this and hope to have a workaround sometime next week. For now please try checking out and building the JOGL source tree, and in the DRIHack.java class, just before the “if (driHackNeeded)” line, set “driHackNeeded = false;”. Does that help?