Peculiar behavior with jogl

When I try the demos via webstart everything works just fine… but if I download and extract jogl-natives-linux.jar to $JAVA_HOME/jre/lib/i386, and copy jogl.jar to $JAVA_HOME/jre/lib/ext, running demos.jgears.JGears locally generates a SIGSEGV right away. (actually it briefly flashes a display window and then aborts before anything actually gets drawn in the window).

The JVM produced an error log that I can provide, if it helps… but I’m sure it’s just something I’m doing wrong.

Thanks in advance,
Mark

Can you post the error log here? What are the specs of your system and graphics card?

One of the Sun engineers just found what appears to be a race condition in the JOGL implementation on X11 between two threads doing Xlib calls. There are probably more than one of these and we’re working on trying to fix them systematically.

Okay… I can’t post a dump of the error log here, since it’s too big, so I put it up on a webserver:

http://members.shaw.ca/markt1964/hs_err_pid24432.log

Oh, btw… /usr/local/jdk is a symlink to /usr/local/jdk1.5.0, just in case you thought I was using two different java versions.

I suspect this is a reoccurrence of Issue 124 in the JOGL Issue Tracker. One of the Sun engineers in the Game Technologies Group, Travis Bryson, is working on fixing this bug and I hope we will have a patch soon.

I doubt this will change the behavior, but I’ve seen problems on Windows with the code below in the JGears demo. You might want to try changing the call in JGears.main() from


GLJPanel drawable = GLDrawableFactory.getFactory().createGLJPanel(new GLCapabilities());

to


    GLCapabilities caps = new GLCapabilities();
    caps.setDoubleBuffered(false);
    GLJPanel drawable = GLDrawableFactory.getFactory().createGLJPanel(caps);

Also, have you tried using a GLCanvas instead of a GLJPanel? (demos.gears.Gears instead of demos.jgears.JGears)

Excellent, thank you greatly!

Using GLCanvas works perfectly.