ATI v5200 problems

Using ATI proprietary driver 8.24.8 on FC5, on a thinkpad T60p. Sun JDK 1.5.0_06. JOGL is a nightly build from a day or two ago. I’m having two different problems:

PROBLEM ONE

GLCanvas creation works as expected. However, all attempts to create a GLJPanel appear to fail, including any of the demos available via demos.jrefract.JRefract. (JGears works when invoked directly, but not from JRefract.)

The application immediately exits with a HotSpot error:

An unexpected error has been detected by HotSpot Virtual Machine:

SIGSEGV (0xb) at pc=0x0857e006, pid=3357, tid=29297568

Java VM: Java HotSpot™ Server VM (1.5.0_06-b05 mixed mode)

Problematic frame:

C [fglrx_dri.so+0x525006] fglX11PBufferReleaseAllTexImages+0x16

The bowels of proprietary driver, it seems. But the fact that it is tickled so repeatedly when creating GLJPanels suggests that perhaps there might be a bug in JOGL (releasing a NULL pointer, perhaps? This code works on nvidia, so perhaps their driver guards against this?) Pure speculation on my part! The hs log file contains this stack dump:

C [fglrx_dri.so+0x525006] fglX11PBufferReleaseAllTexImages+0x16
C [fglrx_dri.so+0x52aed2]
C [libGL.so.1+0x737b7] glXDestroyPbuffer+0x87
C [libjogl.so+0x3f954] Java_com_sun_opengl_impl_x11_GLX_dispatch_1glXDestroyPbuffer0__JJJ+0x70
j com.sun.opengl.impl.x11.GLX.dispatch_glXDestroyPbuffer0(JJJ)V+0
j com.sun.opengl.impl.x11.GLX.glXDestroyPbuffer(JJ)V+29
j com.sun.opengl.impl.x11.X11PbufferGLDrawable.destroy()V+21
j com.sun.opengl.impl.GLPbufferImpl$DestroyAction.run()V+42
j com.sun.opengl.impl.GLPbufferImpl.destroy()V+26
j javax.media.opengl.GLJPanel.handleReshape()V+243
j javax.media.opengl.GLJPanel.paintComponent(Ljava/awt/Graphics;)V+27
j javax.swing.JComponent.paint(Ljava/awt/Graphics;)V+260
j javax.swing.JComponent.paintChildren(Ljava/awt/Graphics;)V+495
j javax.swing.JComponent.paint(Ljava/awt/Graphics;)V+292

(I’m attaching the whole dump…)

PROBLEM TWO

Using GLCanvas for this one… I have an app which, after about five minutes of running uneventfully, abruptly fails with another hotspot error, this time here:

SIGSEGV (0xb) at pc=0x08631c30, pid=3696, tid=62303136

Java VM: Java HotSpot™ Server VM (1.5.0_06-b05 mixed mode)

Problematic frame:

C [fglrx_dri.so+0x5d8c30]

The hs dump shows:

C [fglrx_dri.so+0x525006] fglX11PBufferReleaseAllTexImages+0x16
C [fglrx_dri.so+0x52aed2]
C [libGL.so.1+0x737b7] glXDestroyPbuffer+0x87
C [libjogl.so+0x3f954] Java_com_sun_opengl_impl_x11_GLX_dispatch_1glXDestroyPbuffer0__JJJ+0x70
j com.sun.opengl.impl.x11.GLX.dispatch_glXDestroyPbuffer0(JJJ)V+0
j com.sun.opengl.impl.x11.GLX.glXDestroyPbuffer(JJ)V+29
j com.sun.opengl.impl.x11.X11PbufferGLDrawable.destroy()V+21
j com.sun.opengl.impl.GLPbufferImpl$DestroyAction.run()V+42
j com.sun.opengl.impl.GLPbufferImpl.destroy()V+26
j javax.media.opengl.GLJPanel.handleReshape()V+243

Interesting! Looks like a similar code path as problem one! I’m not sure why the Pbuffer is being destroyed: the crash does not correspond to me resizing the window or creating any new windows…

Again, in the bowels of fglrx_dri. I don’t have much hope that you’ll be able to help me with this one, but on the off chance you’ve seen it before and know a work-around, do tell!

If you’d like me to take either (or both) of these issues up with ATI, I can do that as well (though at the moment, my bug report might be rather terse-- just the JVM dumps!)

And just because it doesn’t get said enough, Ken, the support you provide is amazing, especially since a good chunk of the problems aren’t even in JOGL code!

Topic title:

[quote]ATI v5200 problems
[/quote]
Don’t blame ATi, it doesn’t ship the nVidia 5200 :stuck_out_tongue:

It’s an ATI FireGL v5200, roughly an X1600…

01:00.0 VGA compatible controller: ATI Technologies Inc Unknown device 71c4

Definitely not an nvidia card, though I do remember the nvidia 5200s!

-Ed

:-[ nevermind

Hmm. It looks like there is a bug in the X11 pbuffer implementation where we weren’t clearing out the pbuffer variable once it had been destroyed, so in theory we could try to use a destroyed pbuffer. I’ve checked in a fix for this. However, due to the way the GLJPanel uses pbuffers, I don’t think it’s possible for this bug to happen with just a GLJPanel.

Do the jogl demos which use pbuffers (ProceduralTexturePhysics, HWShadowmapsSimple) work?

Does the demos.jgears.JGears demo (which uses a GLJPanel) work? What about resizes?

I’d probably suspect a driver bug here. You may want to report this crash to ATI. If you can get in their Linux beta driver program so much the better. If you contact me via email at my java.net address I may be able to help you get in touch with their program manager.

Do the jogl demos which use pbuffers (ProceduralTexturePhysics, HWShadowmapsSimple) work?

Gears works when launched directly (including resizing). Crashes as above when launched from JRefract.

ProceduralTexturePhysics dies here, before displaying any output:

C 0x09e0fe70
j com.sun.opengl.impl.GLImpl.dispatch_glProgramEnvParameter4fvARB1(IILjava/lang/Object;IJ)V+0
j com.sun.opengl.impl.GLImpl.glProgramEnvParameter4fvARB(II[FI)V+95
j demos.proceduralTexturePhysics.Water.updateBlurVertOffset(Ljavax/media/opengl/GL;)V+148

HWshadowmapsSimple works. (!)
InfiniteShadowVolumes works.

vertexProgWarp doesn’t work:
C 0x09735a68
j com.sun.opengl.impl.GLImpl.dispatch_glGenProgramsARB1(ILjava/lang/Object;IJ)V+0
j com.sun.opengl.impl.GLImpl.glGenProgramsARB(I[II)V+97
j demos.vertexProgWarp.VertexProgWarp.init(Ljavax/media/opengl/GLAutoDrawable;)V+131

vertexbufferobject doesnt work:
C 0x09906898
j com.sun.opengl.impl.GLImpl.dispatch_glGenBuffersARB1(ILjava/lang/Object;IJ)V+0
j com.sun.opengl.impl.GLImpl.glGenBuffersARB(I[II)V+97
j demos.vertexBufferObject.VertexBufferObject.allocateBigArray(Ljavax/media/opengl/GL;)V+23
j demos.vertexBufferObject.VertexBufferObject.init(Ljavax/media/opengl/GLAutoDrawable;)V+281
j com.sun.opengl.impl.GLDrawableHelper.init(Ljavax/media/opengl/GLAutoDrawable;)V+29
j javax.media.opengl.GLCanvas$InitAction.run()V+11

Will contact you via email shortly…

-Ed