Profile GL4bc is not available on X11GraphicsDevice

1,401 views
Skip to first unread message

Galen Cauble

unread,
Mar 10, 2021, 3:32:35 PM3/10/21
to jaer-users
I am running into an openGL error when trying to run jAER 1.8.1.8/1.9.2 on Fedora 32 (kernel 5.10.19-100) using JRE 1.8 (java-1.8.0-openjdk) and an Intel HD 630 630 graphics card.

I have tried running the 1.8 release and built 1.9 via ant, both have the same error:

Mar 10, 2021 12:31:45 PM net.sf.jaer.util.LoggingThreadGroup uncaughtException
WARNING: Thread[AWT-EventQueue-0,6,main]
Mar 10, 2021 12:31:45 PM net.sf.jaer.util.LoggingThreadGroup uncaughtException
WARNING: com.jogamp.opengl.GLException: Profile GL4bc is not available on X11GraphicsDevice[type .x11, connection :0, unitID 0, handle 0x7fdf90111960, owner true, ResourceToolkitLock[obj 0xde1b30a, isOwner true, <6c943c0c, 15eb0d8a>[count 1, qsz 0, owner <AWT-EventQueue-0>]]], but: [GLProfile[GLES1/GLES1.hw], GLProfile[GLES2/GLES3.hw], GLProfile[GL2ES1/GLES1.hw], GLProfile[GL4ES3/GL4.hw], GLProfile[GL2ES2/GL4.hw], GLProfile[GL4/GL4.hw], GLProfile[GLES3/GLES3.hw], GLProfile[GL4/GL4.hw], GLProfile[GL3/GL4.hw], GLProfile[GL2GL3/GL4.hw]]
    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 jogamp.opengl.GLAutoDrawableBase.defaultDisplay(GLAutoDrawableBase.java:467)
    at com.jogamp.opengl.GLAutoDrawableDelegate.display(GLAutoDrawableDelegate.java:190)
    at net.sf.jaer.JAERViewer.<init>(JAERViewer.java:141)
    at net.sf.jaer.JAERViewer.<init>(JAERViewer.java:75)
    at net.sf.jaer.JAERViewer$3.run(JAERViewer.java:686)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
    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$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
    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)


Loading version info from resource BUILDVERSION.txt
Version URL=jar:file:/home/gcauble/Documents/dvs/jaer-1.9.2/dist/jAER.jar!/BUILDVERSION.txt

-- listing properties --
java.version=1.8.0_282
java.vendor=Red Hat, Inc.
os.version=5.10.19-100.fc32.x86_64
os.name=Linux
"=git describe" output: fatal: not a gi...
Built=March 10 2021 at 1122 by gcauble
Stopping=at filesystem boundary (GIT_DISCOVERY...

I also tried the jogl amd fix just in case that resolved the opengl profile error.

Any direction would be helpful!

Regards,
Galen Cauble


Tobi Delbruck (INI)

unread,
Mar 10, 2021, 3:46:04 PM3/10/21
to jaer-...@googlegroups.com
Thanks for reporting this. It might be the OpenJDK. Try the oracle JDK
1.8. You can still get it from

https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html

We never really test with OpenJDK. We still have not tried to get
everything tested/working with Java 15(?). Would be great to hear what
breaks.


Galen Cauble

unread,
Mar 10, 2021, 6:16:51 PM3/10/21
to jaer-users
I receive the exact same error after installing Java 1.8 instead of OpenJDK.

I installed java from the link you sent and set the path:

JAVA_HOME=/usr/java/jdk1.8.0_281-amd64
PATH=$PATH:$HOME/bin:$JAVA_HOME/bin
export JAVA_HOME
export PATH

Tested the path:

$ which java
/usr/bin/java

$ java -version
java version "1.8.0_281"
Java(TM) SE Runtime Environment (build 1.8.0_281-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.281-b09, mixed mode)

I then did a clean build with:
$ ant clean compile

Tobi Delbruck (UZH-ETH)

unread,
Mar 11, 2021, 2:05:42 AM3/11/21
to jaer-...@googlegroups.com
Arghh, difficult to debug without same exact hardware/GPU....

Did you try the mesa fix with this setup?  I cannot think of anything
else to try right now. OpenGL is so complicated....

See https://github.com/processing/processing/issues/5476 for example.

One other thing is to update graphics driver to latest mesa driver.

Eventually we will be able to update JOGL stuff, but the developers are
taking a long time to test it.


Tobi Delbruck (UZH-ETH)

unread,
Mar 11, 2021, 2:08:51 AM3/11/21
to jaer-...@googlegroups.com
One other thing to try (without much hope that it really helps), add
option to startup according to this post

https://github.com/processing/processing/issues/6154#issuecomment-776611049


Galen Cauble

unread,
Mar 11, 2021, 11:15:00 AM3/11/21
to jaer-users
Success (on jAER 1.8/1.9 starting up)!

Followed the advice you linked and added this variable to my path:
export _JAVA_OPTIONS="-Djogl.disable.openglcore=false"

Confirmation it used the variable was this message after launching jAER:
Picked up _JAVA_OPTIONS: -Djogl.disable.openglcore=false

Then the final jAER log concerning openGL:
Mar 11, 2021 8:06:22 AM net.sf.jaer.graphics.ChipCanvas init
INFO: OpenGL implementation is: jogamp.opengl.gl4.GL4bcImpl
GL_VENDOR: Intel
GL_RENDERER: Mesa Intel(R) HD Graphics 630 (KBL GT2)
GL_VERSION: 4.6 (Compatibility Profile) Mesa 20.2.3

For the record I did not need to use the mesa AMD fix on my machine. I am unsure if there will be any consequences from setting that java option but I will post back once I plug in the DVS.

Thanks for the help thus far.

Tobi Delbruck (UZH-ETH)

unread,
Mar 12, 2021, 3:24:03 AM3/12/21
to jaer-...@googlegroups.com
Thanks again for reporting this fix. I just tried it launching from
netbeans after setting the default config to include the
-Djogl.disable.openglcore=false in the options. It does not seem to
affect GL rendering speed, can still hit almost 600 FPS (with low DVS
activity) on AMD Ryzen 7 3700X 8-Core Proc...@3.59 GHz with Nvidia
Geforce RTX 2080, windows 10.

According to
https://jogamp.org/deployment/jogamp-next/javadoc/jogl/javadoc/com/jogamp/opengl/GLProfile.html,
this setting does "n case no native OpenGL core profiles are required
and if one platform may have a buggy implementation, setting the
property jogl.disable.openglcore disables querying possible existing
native OpenGL core profiles.". So setting it false still inquires for
profiles. And the bug was to NOT find a profile. So I don't understand
why it helps.


Galen Cauble

unread,
Mar 12, 2021, 10:36:09 AM3/12/21
to jaer-users
I was curious and set it true instead:
export _JAVA_OPTIONS="-Djogl.disable.openglcore=true"
$ ./jAERViewer_linux.sh
Picked up _JAVA_OPTIONS: -Djogl.disable.openglcore=true

That worked fine, so I tried not passing a boolean at all:
export _JAVA_OPTIONS="-Djogl.disable.openglcore"
$ ./jAERViewer_linux.sh
Picked up _JAVA_OPTIONS: -Djogl.disable.openglcore

Which also worked!

That leaves me to interpret the documentation "...setting the property jogl.disable.openglcore disables querying possible existing native OpenGL core profiles" to simply mean setting the property disables it, no need to pass a boolean.

Thanks for the help on this, it's not linux if you're not debugging something obscure ;).

Tobi Delbruck

unread,
Mar 18, 2021, 3:29:21 PM3/18/21
to jaer-users
I pushed this option to the default launcher target in netbeans and put it in the linux launcher script.  Let;s see if that helps fix these problems.

Tobi Delbruck

unread,
Mar 21, 2021, 3:33:37 AM3/21/21
to jaer-users
Another user observed that using this switch in linux prevented startup, got this exception below. Solution was to remove this option from startup.

Mar 20, 2021 4:03:21 PM net.sf.jaer.util.LoggingThreadGroup uncaughtException
WARNING: com.jogamp.opengl.GLException: Graphics configuration failed [direct caps, eglGetConfig/chooser and fixed-caps(1-3)]
    at jogamp.opengl.egl.EGLGraphicsConfigurationFactory.chooseGraphicsConfigurationStatic(EGLGraphicsConfigurationFactory.java:317)
    at jogamp.opengl.egl.EGLDrawableFactory.evalConfig(EGLDrawableFactory.java:1060)
    at jogamp.opengl.egl.EGLDrawableFactory.createMutableSurfaceImpl(EGLDrawableFactory.java:1072)
    at jogamp.opengl.egl.EGLDrawableFactory.createDummySurfaceImpl(EGLDrawableFactory.java:1080)
    at jogamp.opengl.egl.EGLDrawableFactory.createDummySurfaceImpl(EGLDrawableFactory.java:88)
    at jogamp.opengl.GLDrawableFactoryImpl.createDummyDrawable(GLDrawableFactoryImpl.java:446)
    at jogamp.opengl.GLDrawableFactoryImpl.createDummyAutoDrawable(GLDrawableFactoryImpl.java:390)
    at net.sf.jaer.JAERViewer.<init>(JAERViewer.java:140)
    at net.sf.jaer.JAERViewer.<init>(JAERViewer.java:75)
    at net.sf.jaer.JAERViewer$3.run(JAERViewer.java:682)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
    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$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
    at org.GNOME.Accessibility.AtkWrapper$6.dispatchEvent(AtkWrapper.java:705)
Reply all
Reply to author
Forward
0 new messages