Java2D-OpenGL-Pipeline with GF 8800 GTS hangs / crashes system

Today I got my new GF 8800 GTs and was very excited to test my jogl apps. Unfortunately the jframe stays empty and nothing is rendered at all. The system hangs if I don’t kill the process immediately.

I use latest drivers (97.94) with latest jogl nightly build (rc4) and java6u1 on windows xp sp2.

I suppose it is a driver bug by nvidia could anyone confirm or point me to a driver version that works with the pipeline and the 8800gts.

By the way without the pipeline enabled everything works fine (on this maschine it’s even no performance problem without the pipeline but thats not the reason why I’m writing here ;D)

Thanks for help
Klemens

I just tested it under vista business 32 bit with 100.65 driver from nvidia.

Same problem… no renderings at all with pipeline enabled… fortunately no crash (but I didn’t want to test it further ;D)

i suppose other OGL applications work with this graphics card?
if so, maybe try older jogl builds and see if they work.

I’ll test it this afternoon…
Without the pipeline all the opengl stuff is fine…

There is a new vista beta drive out that might fix your problems. Forceware 158.18. It supposedly fixes a lot of driver not responding errors.

I just tested the beta driver with jogl rc1 and rc4 on vista but the problem is still alive… I’ll test the xp-beta driver soon… but I’m not really confident with that…

No change with the xp driver. At least the very first frame is painted bevor the system crashes…

Do normal Java 2D demos (like Java2Demo which comes with the JDK) work with -Dsun.java2d.opengl=true on your system?

If they do, and if your app works without the OGL pipeline enabled, you might want to install a DebugGL in the normal case and see if any OpenGL errors are being raised.

The Java2D-demo works fine with and without the pipeline enabled (Even though there was no performance difference between both versions?).

I than installed the DebugGL within the init-method of my glEventListener via arg0.setGL(new DebugGL(arg0.getGL())); with pipeline disabled no errors are thrown / shown. With pipeline enabled the system hangs as “usual” without any error thrown / shown.

Just for completeness I testet the webstarts of Chris Campbell (http://weblogs.java.net/blog/campbell/archive/2006/10/easy_2d3d_mixin.html)… same behaviour… without the pipeline enabled everything works fine…

It must be some of the OpenGL operations that we’re doing in the Java 2D / JOGL bridge when the Java 2D OpenGL pipeline is turned on. Unfortunately we don’t have a suitably configured Vista machine in house. The bridge works fine on all of the XP machines I’ve tested on. Please file a bug with the Issue Tracker on the JOGL home page and we’ll look into it.

Well as I said… the problem is in both… vista and xp.

So I don’t know if that’s a jogl-vista/jogl-xp (which is hard to believe cause of all the other success with the pipeline) or a jogl-current_driver_of_8800gts bug.

Do you have access to a graphics board with 8800gts-chip installed?

Otherwise I’ll post the bug-report of course.

No, I think the most recent boards we have available are 7800 series.

I just testet the jogl-demos… some bad behaviour…

Vertex Program Refract just a black background with a very pale rabbit… no texture at all
Water (Procedural Texture Physics)… Just a black rectangle on blue ground ( I think that demo uses pBuffers!?)
XTrans… nothing… just the menubar

I think there’s a big driver problem

Please report these issues to NVidia. The best way would probably be to sign up for their developer program and file them as bugs on their web site.

Just for your interest… the driver get better…

currently I’m using a version 165 beta forceware driver. The crashes are gone… all of the demos that use pbuffers and the java2d-pipeline doesn’t work yet.

I hope the pBuffer support comes soon with one of the next driver revisions.

Maybe this points to an problem in jogl:

Checking for Java2D/OpenGL support
Java2D support: default GraphicsConfiguration = sun.java2d.opengl.WGLGraphicsConfig
java.lang.ClassNotFoundException: sun.java2d.opengl.CGLSurfaceData
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:169)
at com.sun.opengl.impl.Java2D$1.run(Java2D.java:195)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.opengl.impl.Java2D.(Java2D.java:101)
at javax.media.opengl.GLJPanel.(GLJPanel.java:201)
at uk.ac.york.its.kc.KCME.main(KCME.java:142)
Unable to find class sun.java2d.opengl.CGLSurfaceData for OS X
JOGL/Java2D integration enabled
Starting initialization of J2D FBO share context
exception in QueueFlusher:
javax.media.opengl.GLException: Error: attempted to make an external GLContext without a drawable/context current
at com.sun.opengl.impl.windows.WindowsExternalGLContext.(WindowsExternalGLContext.java:56)
at com.sun.opengl.impl.windows.WindowsGLDrawableFactory.createExternalGLContext(WindowsGLDrawableFactory.java:169)
at com.sun.opengl.impl.Java2D$3.run(Java2D.java:548)
at sun.java2d.opengl.OGLRenderQueue$QueueFlusher.run(OGLRenderQueue.java:203)
Ending initialization of J2D FBO share context

Does the JGears demo that ships with JOGL work properly? Are you using the latest JOGL build? What about the most recent Java 6 update release?

I suspect this might be related to a bug in Java 2D related to its OpenGL context management. In theory at that point in the code there should be an OpenGL context current that JOGL picks up, but there isn’t one. See roughly line 507 in GLJPanel.java for a description of the problem.

I’ll check this on Monday. Once I read about a debug-level setting for java2d. Could you point me to the right setup for verbose output?

Instructions here, found with Google search for “java 2d verbose”.

oh I’m sorry for didn’t try google first…

Just to update this with an driver report:

Today NVidia introduced the forceware 163.44 beta driver. This version is able to show the “Water (Procedural Texture Physics)” and the “Hardware Shadow Mapping” demo for the first time of all tested drivers (Windows XP).

All of the java2d-opengl-pipeline enabled webstarts show up with black windows (or at least a lot of black regions). Fortunately: Nothing seems to crash anymore.

Finally the 163.44 for Windows Vista is signifant slower (in general) than the other versions for vista before :frowning: