Hi,
With jogl 2.0 rc-11 we are encountering an occasional thread block on GLProfile.get(). This is on Windows 74 64 with the latest JRE 7_21, on a Lenovo with a NVS 3100M GPU with the latest stable drivers. The sporadic nature makes it seem like a race condition. Is there a work-around for this? The attached image shows the blocked thread in a profiler. thanks, Nick |
Administrator
|
Hi
Please recompile Java3D with the very latest aggregated build of JOGL 2.0 (April 25th 2013). I think it comes from Java3D, not from JOGL but I can't be 100% sure. You should perform several tests to determine the origin of your problem. For example, test with an application that uses JOGL 2.0.2 RC 20130425 but neither Java3D nor AWT (my game). Then, try to run the unit tests provided with JOGL. Instead of using YourKit, use JVisualVM and post the stack trace, it would be helpful to determine where it is blocked and by which other method.
Julien Gouesse | Personal blog | Website
|
Thanks. We will do as you suggest. We also have reports of this happening in our app when Java3D is not used. Just a jogl based display on its own. Also, from the thread display it looks like the Java3D thread haven't even started yet, only the GLProfile-GL Bootstraping and event thread are in non-waiting states.
thanks, Nick |
Administrator
|
Can you reproduce your bug on a tiny test case without Java3D?
Julien Gouesse | Personal blog | Website
|
We ran the unit tests and one consistently fails. I'm not sure if its the source of the hang. An adapted version is attached. JoglBug.java.
When we run it, we sometimes get the following exception, although it does freeze every time after the initial canvas is displayed. Thread[main,5,main] GearsES2.init ... GearsES2 init on Thread[main,5,main] Chosen GLCapabilities: GLCaps[wgl vid 0x7 arb: rgba 8/8/8/0, opaque, accum-rgba 16/16/16/16, dp/st/ms 24/0/0, dbl, mono , hw, GLProfile[GL2/GL2.hw], on-scr[.]] INIT GL IS: jogamp.opengl.gl4.GL4bcImpl GL_VENDOR: NVIDIA Corporation GL_RENDERER: NVS 3100M/PCIe/SSE2 GL_VERSION: 3.3.0 GL GLSL: true, has-compiler: true, version 3.30 NVIDIA via Cg compiler, 3.30.0 GL FBO: basic true, full true GL Profile: GLProfile[GL2/GL2.hw] GL Renderer Quirks:[NoDoubleBufferedBitmap] GL:jogamp.opengl.gl4.GL4bcImpl@da3fdb5, 3.3 (hardware) - 3.3.0 gear1 created: com.jogamp.opengl.test.junit.jogl.demos.es2.GearsObjectES2@4ff8254f gear2 created: com.jogamp.opengl.test.junit.jogl.demos.es2.GearsObjectES2@2c598e8d gear3 created: com.jogamp.opengl.test.junit.jogl.demos.es2.GearsObjectES2@2b9de1ba Thread[main,5,main] GearsES2.init FIN Thread[main,5,main] GearsES2.reshape 0/0 400x300, swapInterval 1, drawable 0x32011659 Thread[main,5,main] GearsES2.display 400x300, swapInterval 1, drawable 0x32011659 Thread[main,5,main] GearsES2.display 400x300, swapInterval 1, drawable 0x32011659 Thread[main-Display-.windows_nil-1-EDT-1,5,main] GearsES2.reshape 0/0 200x150, swapInterval 1, drawable 0x610115e0 Thread[main-Display-.windows_nil-1-EDT-1,5,main] GearsES2.display 200x150, swapInterval 1, drawable 0x610115e0 Thread[main-Display-.windows_nil-1-EDT-1,5,main] GearsES2.display 200x150, swapInterval 1, drawable 0x610115e0 Exception in thread "main" java.lang.RuntimeException: Waited 5000ms for: <416f48e4, 711a924b>[count 1, qsz 0, owner <main-Display-.windows_nil-1-EDT-1>] - <main> at jogamp.common.util.locks.RecursiveLockImpl01Unfairish.lock(RecursiveLockImpl01Unfairish.java:198) at jogamp.opengl.GLAutoDrawableBase.defaultDisplay(GLAutoDrawableBase.java:388) at com.jogamp.opengl.GLAutoDrawableDelegate.display(GLAutoDrawableDelegate.java:160) at lib.ext.test.JoglBug.doTest(JoglBug.java:93) at lib.ext.test.JoglBug.main(JoglBug.java:116) I hope this helps. As I said, it looked like our problem was with a hang during GLProfile.get(), but this was a close as we could get with the unit tests. Nick |
Free forum by Nabble | Edit this page |