Re: Ubuntu/Linux misc. problems: jogl, j3d, netbeans...
Posted by LordSmoke on Mar 10, 2019; 4:18pm
URL: https://forum.jogamp.org/Ubuntu-Linux-misc-problems-jogl-j3d-netbeans-tp4039493p4039591.html
Haven't been able to work on this (jogl+j3d+ubuntu+oracle/openjdk) for a while due to class and must now give it a formal rest while I add some functionality to my programs - Windows and Mac work. However, I wanted to make another post to document some issues that might be useful to developers.
I had JOGL working on all platforms, but not J3D. I think I was making progress there, until...
====
NOTES: 20190220 – auto update of ubuntu (18.04.1) broke everything. Deleted and reinstalled all java versions, netbeans, and recopied my development directories.
Install of headless OpenJDK 8 caused crash of morpheus_eProbe (only checks jogl/j3d installs with some calls to see if they work, and they should) with:
java -jar ./morpheus_eProbe.jar
Exception in thread "main" java.awt.AWTError: Assistive Technology not found: org.GNOME.Accessibility.AtkWrapper
at java.awt.Toolkit.loadAssistiveTechnologies(Toolkit.java:807)
at java.awt.Toolkit.getDefaultToolkit(Toolkit.java:886)
at java.awt.Toolkit.getEventQueue(Toolkit.java:1736)
at java.awt.EventQueue.invokeLater(EventQueue.java:1294)
at morpheus_eprobe.Morpheus_eProbe_startup.main(Morpheus_eProbe_startup.java:51)
**** Removal of headless OpenJDK 8 and installation of full JDK fixed problem. Found this fix in general (not jogl-specific) online discussion.
====
After the above, my jogl test program works until I try to do the most basic jogl stuff - create a window and draw a white triangle. The error is...
java -jar ./morpheus_JOGL.jar
libEGL warning: DRI2: failed to authenticate
Exception in thread "AWT-EventQueue-0" com.jogamp.opengl.GLException: Profile GL3bc is not available on X11GraphicsDevice[type .x11, connection :0, unitID 0, handle 0x7f401019f7f0, owner true, JAWTToolkitLock[obj 0x73229684, isOwner true, <5202498d, 31dce888>[count 1, qsz 0, owner <AWT-EventQueue-0>]]], but: [GLProfile[GLES1/GLES1.sw], GLProfile[GLES2/GLES3.sw], GLProfile[GL2ES1/GLES1.sw], GLProfile[GL4ES3/GLES3.sw], GLProfile[GL2ES2/GL3.sw], GLProfile[GL3/GL3.sw], GLProfile[GLES3/GLES3.sw], GLProfile[GL3/GL3.sw], GLProfile[GL2GL3/GL3.sw]]
at com.jogamp.opengl.GLProfile.get(GLProfile.java:991)
at jogamp.opengl.GLContextImpl.verifyInstance(GLContextImpl.java:1471)
at jogamp.opengl.GLContextImpl.setGLFunctionAvailability(GLContextImpl.java:1942)
at jogamp.opengl.x11.glx.X11GLXContext.createImpl(X11GLXContext.java:395)
at jogamp.opengl.GLContextImpl.makeCurrentWithinLock(GLContextImpl.java:765)
at jogamp.opengl.GLContextImpl.makeCurrent(GLContextImpl.java:648)
at jogamp.opengl.GLContextImpl.makeCurrent(GLContextImpl.java:586)
at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1279)
at jogamp.opengl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:1147)
at com.jogamp.opengl.awt.GLCanvas$12.run(GLCanvas.java:1438)
at com.jogamp.opengl.Threading.invoke(Threading.java:223)
at com.jogamp.opengl.awt.GLCanvas.display(GLCanvas.java:505)
at com.jogamp.opengl.awt.GLCanvas.paint(GLCanvas.java:559)
at sun.awt.RepaintArea.paintComponent(RepaintArea.java:264)
at sun.awt.X11.XRepaintArea.paintComponent(XRepaintArea.java:64)
at sun.awt.RepaintArea.paint(RepaintArea.java:240)
at sun.awt.X11.XComponentPeer.handleEvent(XComponentPeer.java:584)
at java.awt.Component.dispatchEventImpl(Component.java:4965)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:760)
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$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:84)
at java.awt.EventQueue$4.run(EventQueue.java:733)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:730)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
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)
NOTE: I am not asking for help with any of the above. It will be a while before I can worry about this particular problem. Instead, I post it in case it is of use to the jogl/j3d developers.