couldn't find Aa suitable framebuffer configuration with ATI 9800 pro

I have a jogl app that uses GLJPanel and works fine on my Inspiron 5150 laptop with an NVIDIA card. I recently started working on it on another machine with a ATI 9800 PRO with fedora and the fglrx-8.23.7-4 drivers. When I start up the app now it givces me the following message:

exception in QueueFlusher:
javax.media.opengl.GLException: context creation error: couldn’t find a suitable frame buffer configuration
at com.sun.opengl.impl.x11.X11ExternalGLDrawable$Context.create(X11ExternalGLDrawable.java:180)
at com.sun.opengl.impl.x11.X11ExternalGLDrawable$Context.makeCurrentImpl(X11ExternalGLDrawable.java:123)
at com.sun.opengl.impl.GLContextImpl.makeCurrent(GLContextImpl.java:118)
at com.sun.opengl.impl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:182)
at javax.media.opengl.GLJPanel$1.run(GLJPanel.java:585)
at sun.java2d.opengl.OGLRenderQueue$QueueFlusher.run(OGLRenderQueue.java:203)

Any idea what I can try. I get the following GLCapabilities:
JOGL GLCapabilities [DoubleBuffered: true, Stereo: false, HardwareAccelerated: true, DepthBits: 24, StencilBits: 0, Red: 8, Green: 8, Blue: 8, Alpha: 8, Red Accum: 0, Green Accum: 0, Blue Accum: 0, Alpha Accum: 0, Multisample: false

Is it possible for you to check out and build the jogl sources?

Something is going wrong in some low-level X11/GLX calls which may ultimately be driver issues.

I note that you’re using Mustang with the Java2D/OpenGL bridge enabled. Have you tried not using the Java2D/OpenGL pipeline (will impact performance, but may improve the stability)?

I turned off the Java2D/OpenGL pipeline and it dosen’t give me that error anymore, but I get one related to the vertex buffer objects that I use (NullPointerException …). I haven’t checked out what that issue is, but it seems to find the correct framebuffer configuration alright. I’m using the beta 4 jogl, I haven’t had the time to checkout the jogl sources yet. Is there anything different since beta 4. I also updated to the kmod-fglrx-8.24.8-1.2.6.16_1.2096_FC5 from the kmod-fglrx-8.23.8-1.2.6.16_1.2096_FC5 driver.

No, there’s nothing different from beta 4, but we don’t have enough tracing information in the source base at this point to figure out what is going on. I could add this and you could test with a subsequent nightly build if that would be easier.

Does it look like the NullPointerException is coming from within JOGL? Could you please post the stack trace?

The tracing nightly build would be nice. Let me know when its available.

No the NullPointerException is to do with the ByteBuffer that I get mapping to the vertex buffer object.

// map buffer into client memory, update buffer, and unmap buffer again
ByteBuffer mappedBuffer = gl.glMapBuffer(GL.GL_PIXEL_UNPACK_BUFFER_ARB, GL.GL_WRITE_ONLY);

Actually now when I look at it, it is the PixelBufferObjects byte byffer that returrns null. The machine with the ATI card is at home so I can’t verify this until later. I’ll post some more details then.

Opps :-[
My code incorrectly tested the available extensions and so it was trying to use pixel buffer objects when the driver did not support it. Both
GL_ARB_pixel_buffer_object and GL_EXT_pixel_buffer_object returned false.

I don’t have code to deal with the alternate case yet so I can’t check that everything else is ok, but I guess it should be. I would have thought that a ATI 9800 Pro with the latest ATI driver would have supported pixel buffer objects, but I guess not.