Not a GL4 implementation on thread AWT-EventQueue-0 (Nvidia driver 353.30 / 353.06)

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Not a GL4 implementation on thread AWT-EventQueue-0 (Nvidia driver 353.30 / 353.06)

a_shuang
This post was updated on .
When I update my Nvidia driver to the latest one 353.30 or 353.06, the application that worked well before I did it crashed with the following information (it will not present with the older driver version like 352.86):

Exception in thread "AWT-EventQueue-0-FPSAWTAnimator#00-Timer0" com.jogamp.opengl.util.AnimatorBase$UncaughtAnimatorException: java.lang.RuntimeException: com.jogamp.opengl.GLException: Caught GLException: Not a GL4 implementation on thread AWT-EventQueue-0
        at com.jogamp.opengl.util.AWTAnimatorImpl.display(AWTAnimatorImpl.java:84)
        at com.jogamp.opengl.util.AnimatorBase.display(AnimatorBase.java:451)
        at com.jogamp.opengl.util.FPSAnimator$MainTask.run(FPSAnimator.java:178)
        at java.util.TimerThread.mainLoop(Timer.java:555)
        at java.util.TimerThread.run(Timer.java:505)
Caused by: java.lang.RuntimeException: com.jogamp.opengl.GLException: Caught GLException: Not a GL4 implementation on thread AWT-EventQueue-0
        at com.jogamp.common.util.awt.AWTEDTExecutor.invoke(AWTEDTExecutor.java:58)
        at jogamp.opengl.awt.AWTThreadingPlugin.invokeOnOpenGLThread(AWTThreadingPlugin.java:103)
        at jogamp.opengl.ThreadingImpl.invokeOnOpenGLThread(ThreadingImpl.java:201)
        at com.jogamp.opengl.Threading.invokeOnOpenGLThread(Threading.java:202)
        at com.jogamp.opengl.Threading.invoke(Threading.java:221)
        at com.jogamp.opengl.awt.GLCanvas.display(GLCanvas.java:526)
        at com.jogamp.opengl.util.AWTAnimatorImpl.display(AWTAnimatorImpl.java:77)
        ... 4 more
Caused by: com.jogamp.opengl.GLException: Caught GLException: Not a GL4 implementation on thread AWT-EventQueue-0
        at com.jogamp.opengl.GLException.newGLException(GLException.java:76)
        at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1311)
        at jogamp.opengl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:1131)
        at com.jogamp.opengl.awt.GLCanvas$12.run(GLCanvas.java:1435)
        at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:301)
        at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
        at java.awt.EventQueue.access$500(EventQueue.java:97)
        at java.awt.EventQueue$3.run(EventQueue.java:709)
        at java.awt.EventQueue$3.run(EventQueue.java:703)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Caused by: com.jogamp.opengl.GLException: Not a GL4 implementation
        at jogamp.opengl.gl4.GL4bcImpl.getGL4(GL4bcImpl.java:38989)
        at Support.Resources.setGLContext(Resources.java:86)
        at Basicsource.Listener.init(Listener.java:50)
        at jogamp.opengl.GLDrawableHelper.init(GLDrawableHelper.java:641)
        at jogamp.opengl.GLDrawableHelper.init(GLDrawableHelper.java:663)
        at com.jogamp.opengl.awt.GLCanvas$10.run(GLCanvas.java:1404)
        at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1275)
        ... 16 more
Exception in thread "AWT-EventQueue-0" com.jogamp.opengl.GLException: Caught GLException: Not a GL4 implementation on thread AWT-EventQueue-0
        at com.jogamp.opengl.GLException.newGLException(GLException.java:76)
        at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1311)
        at jogamp.opengl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:1131)
        at com.jogamp.opengl.awt.GLCanvas$12.run(GLCanvas.java:1435)
        at com.jogamp.opengl.Threading.invoke(Threading.java:223)
        at com.jogamp.opengl.awt.GLCanvas.display(GLCanvas.java:526)
        at com.jogamp.opengl.awt.GLCanvas.paint(GLCanvas.java:580)
        at sun.awt.RepaintArea.paintComponent(RepaintArea.java:264)
        at sun.awt.RepaintArea.paint(RepaintArea.java:240)
        at sun.awt.windows.WComponentPeer.handleEvent(WComponentPeer.java:358)
        at java.awt.Component.dispatchEventImpl(Component.java:4957)
        at java.awt.Component.dispatchEvent(Component.java:4703)
        at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
        at java.awt.EventQueue.access$500(EventQueue.java:97)
        at java.awt.EventQueue$3.run(EventQueue.java:709)
        at java.awt.EventQueue$3.run(EventQueue.java:703)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
        at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:86)
        at java.awt.EventQueue$4.run(EventQueue.java:731)
        at java.awt.EventQueue$4.run(EventQueue.java:729)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Caused by: com.jogamp.opengl.GLException: Not a GL4 implementation
        at jogamp.opengl.gl4.GL4bcImpl.getGL4(GL4bcImpl.java:38989)
        at Support.Resources.setGLContext(Resources.java:86)
        at Basicsource.Listener.reshape(Listener.java:34)
        at jogamp.opengl.GLDrawableHelper.reshape(GLDrawableHelper.java:742)
        at jogamp.opengl.GLDrawableHelper.reshape(GLDrawableHelper.java:748)
        at com.jogamp.opengl.awt.GLCanvas$11.run(GLCanvas.java:1417)
        at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1277)
        ... 28 more


And the line causing the problem was
             gl = drawable.getGL().getGL4();

After some tests, I found the reason.

                Listener listener = new Listener();
                new GLDisplay(listener);
                new JFXPanel(); //setup JavaFX running environment, necessary
                new ControlPanel();

it worked fine sometimes, and also fell sometimes if I put GLDisplay content into the front initializing it first before initializing JavaFX.

                Listener listener = new Listener();
                new JFXPanel(); //setup JavaFX running environment, necessary
                new ControlPanel();
                new GLDisplay(listener);

and it will definitely fail if I put GLDisplay content behind initializing JavaFX.

Updated: some code for testing is uploaded here, and all rendering stuffs were deleted to make it clean.

JavaFX_compatible_test.rar
Reply | Threaded
Open this post in threaded view
|

Re: Not a GL4 implementation on thread AWT-EventQueue-0 (Nvidia driver 353.30 / 353.06)

Xerxes Rånby
Please publish your application in a git tree using a free software license
or publish a Short, Self Contained, Correct (Compilable), Example that demonstrate the issue.
http://sscce.org/

It sounds like JFX has initialized an opengl profile that is not GL4 compatible while you application picks up the already initialized profile in the display function.
Reply | Threaded
Open this post in threaded view
|

Re: Not a GL4 implementation on thread AWT-EventQueue-0 (Nvidia driver 353.30 / 353.06)

a_shuang
Testing code was just uploaded. Please ensure the nvidia driver is up to date when testing it.