Login  Register

GLException "No device available" error on Ubuntu 20 / Intel Graphics

Posted by atrch on Jul 29, 2020; 8:39am
URL: https://forum.jogamp.org/GLException-No-device-available-error-on-Ubuntu-20-Intel-Graphics-tp4040754.html

Hi everyone,

I am encountering a "GLException: No default device available" error using JOGL (with both 2.3.2 or latest 2.4.0 RC) on my Ubunto 20 laptop with an Intel Graphics card. I searched for this error but found only old messages regarding raspberry pi issues.

(I have put at the end of the message the detailled debug output when the error occurs).

Do someone have an idea of what could be the origin of the issue ?

For information, I use JOGL with VTK Java wrapping, working on "older" linux systems (with mesa or Nvidia drivers installed), so maybe it is due to an issue with newer version of Mesa ? (I have encounter before issues with the GLProfile not being correctly recognised on Linux, forcing to use the 2.4.0 RC to resolve the issue).

Thank you in advance,
Arnaud

PS: output of lspci: "00:02.0 VGA compatible controller: Intel Corporation UHD Graphics (rev 02)"
----
The following debug is for a test with Java 11 but the same error appears with Java 8


GLProfile.initSingleton() - thread AWT-EventQueue-0
    [2]: com.jogamp.opengl.GLProfile.initSingleton(GLProfile.java:216)
    [3]: com.jogamp.opengl.GLProfile.getProfileMap(GLProfile.java:2324)
    [4]: com.jogamp.opengl.GLProfile.get(GLProfile.java:1042)
    [5]: com.jogamp.opengl.GLProfile.get(GLProfile.java:1071)
    [6]: com.jogamp.opengl.GLProfile.getMaxProgrammable(GLProfile.java:847)
    [7]: com.artenum.cassandra.renderer.vtk.CassandraView.createCanvas(CassandraView.java:155)
    [8]: com.artenum.cassandra.renderer.vtk.CassandraView.lambda$new$0(CassandraView.java:145)
    [9]: java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
    [10]: java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
    [11]: java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
    [12]: java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
    [13]: java.base/java.security.AccessController.doPrivileged(Native Method)
    [14]: java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
    [15]: java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:740)
    [16]: java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
    [17]: java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
    [18]: java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
    [19]: java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
    [20]: java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    [21]: java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
guessX: <null> isSet false
guessWayland: <null> isSet false
guessGBM: </dev/dri/card0> exists true
guessVCIVUsed: hasVCLib = false && !hasVC4ModLocation = !false && !hasDriCard0File = !true
AWT-EventQueue-0 - Info: NativeWindowFactory.<init>: Type .egl.gbm custom / .egl.gbm native
AWT-EventQueue-0 - NativeWindowFactory.initSingleton()
JAWTUtil initialization (JAWT/JNI/...); SKIP_AWT_HIDPI false
JAWTUtil.getJAWT(tryOffscreenLayer false, tryOnscreen true)
Checking for Java2D/OpenGL support
Java2D support: default GraphicsConfiguration = sun.java2d.xr.XRGraphicsConfig
JOGL/Java2D OGL Pipeline active false, resourceCompatible false
JAWTUtil: Has sun.awt.SunToolkit: awtLock/awtUnlock true, disableBackgroundErase true
JAWTUtil: Has Java2D true
JAWTUtil: Is headless false
JAWTUtil: AWT Desktop hints 1
JAWTUtil: OffscreenLayer Supported: false - Required false
DRMUtil.initSingleton()
Info: NativeWindow native init passed
DRMUtil.initSingleton(): drmDevice[/dev/dri/card0]: fd 44: has resources: true
DRMUtil.initSingleton(): OK true, drmFd 44]
Connector 0/3 chosen true,: id[con 0x56, enc 0x55], type 14[id 0x1], connection 1, dim 310xaa mm, modes 1, encoders 1
Connector 1/3 chosen false,: id[con 0x5c, enc 0x0], type 11[id 0x1], connection 2, dim 0x0 mm, modes 0, encoders 1
Connector 2/3 chosen false,: id[con 0x64, enc 0x0], type 11[id 0x2], connection 2, dim 0x0 mm, modes 0, encoders 1
Connector[0].Mode 0/1 (max-chosen 0): clock 147840, 1920x1080 @ 60 Hz, type 72, name <1920x1080>
Connector[0].Encoder 0/3 chosen true: id 0x55, type 2, crtc_id 0x30, possible[crtcs 7, clones 1]
Connector[0].Encoder 1/3 chosen false: id 0x5b, type 2, crtc_id 0x0, possible[crtcs 7, clones 2]
Connector[0].Encoder 2/3 chosen false: id 0x63, type 2, crtc_id 0x0, possible[crtcs 7, clones 4]
Connector[0]: id[con 0x56, enc 0x55], type 14[id 0x1], connection 1, dim 310xaa mm, modes 1, encoders 1
Connector[0].Mode: clock 147840, 1920x1080 @ 60 Hz, type 72, name <1920x1080>
Connector[0].Encoder: id 0x55, type 2, crtc_id 0x30, possible[crtcs 7, clones 1]
NativeWindowFactory.registerFactory() interface com.jogamp.nativewindow.NativeWindow -> jogamp.nativewindow.NativeWindowFactoryImpl@7eca6308
NativeWindowFactory.registerFactory() class java.awt.Component -> jogamp.nativewindow.NativeWindowFactoryImpl@7eca6308
NativeWindowFactory requiresToolkitLock true, desktopHasThreadingIssues false
NativeWindowFactory isAWTAvailable true, defaultFactory jogamp.nativewindow.NativeWindowFactoryImpl@7eca6308
AWT-EventQueue-0 - Info: GraphicsConfigurationFactory.<init>
AWT-EventQueue-0 - GraphicsConfigurationFactory.initSingleton()
GraphicsConfigurationFactory.registerFactory() put DeviceCapsType[com.jogamp.nativewindow.AbstractGraphicsDevice, com.jogamp.nativewindow.CapabilitiesImmutable] -> jogamp.nativewindow.DefaultGraphicsConfigurationFactoryImpl@66c6104e, overridding: null
GLProfile.init - thread: AWT-EventQueue-0
-----------------------------------------------------------------------------------------------------
Platform: LINUX / Linux 5.4.0-42-generic (5.4.0), amd64 (X86_64, GENERIC_ABI), 8 cores, littleEndian true
MachineDataInfo: runtimeValidated true, 32Bit false, primitive size / alignment:
  int8    1 / 1, int16   2 / 2
  int     4 / 4, long    8 / 8
  int32   4 / 4, int64   8 / 8
  float   4 / 4, double  8 / 8, ldouble 16 / 16
  pointer 8 / 8, page    4096
Platform: Java Version: 11.0.8 (11.0.8u0), VM: OpenJDK 64-Bit Server VM, Runtime: OpenJDK Runtime Environment
Platform: Java Vendor: Ubuntu, https://ubuntu.com/, JavaSE: true, Java9: true, Java6: true, dynamicLib: true, AWT enabled: true
-----------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------
Package: com.jogamp.gluegen
Extension Name: null
Specification Title: null
Specification Vendor: null
Specification Version: null
Implementation Title: null
Implementation Vendor: null
Implementation Vendor ID: null
Implementation URL: null
Implementation Version: null
Implementation Build: null
Implementation Branch: null
Implementation Commit: null
Implementation SHA Sources: null
Implementation SHA Classes: null
Implementation SHA Classes-this: null
Implementation SHA Natives: null
Implementation SHA Natives-this: null
-----------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------
Package: com.jogamp.nativewindow
Extension Name: null
Specification Title: null
Specification Vendor: null
Specification Version: null
Implementation Title: null
Implementation Vendor: null
Implementation Vendor ID: null
Implementation URL: null
Implementation Version: null
Implementation Build: null
Implementation Branch: null
Implementation Commit: null
Implementation SHA Sources: null
Implementation SHA Classes: null
Implementation SHA Classes-this: null
Implementation SHA Natives: null
Implementation SHA Natives-this: null
-----------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------
Package: com.jogamp.opengl
Extension Name: null
Specification Title: null
Specification Vendor: null
Specification Version: null
Implementation Title: null
Implementation Vendor: null
Implementation Vendor ID: null
Implementation URL: null
Implementation Version: null
Implementation Build: null
Implementation Branch: null
Implementation Commit: null
Implementation SHA Sources: null
Implementation SHA Classes: null
Implementation SHA Classes-this: null
Implementation SHA Natives: null
Implementation SHA Natives-this: null
-----------------------------------------------------------------------------------------------------
GLDrawableFactory.static - No native Windowing Factory for: .egl.gbm; May use EGLDrawableFactory, if available.
Info: GLDrawableFactory.static - Desktop GLDrawableFactory unspecified!
Info: EGLDrawableFactory: EGL ES2 - NOPE
Info: EGLDrawableFactory: EGL ES1 - NOPE (ES1 lib)
Info: EGLDrawableFactory: EGL Gln - disabled!
Info: GLProfile.init - Desktop GLDrawable factory not available
Info: GLProfile.init - Mobile GLDrawable factory not available
Info: GLProfile.init - Default device not available
GLProfile.init addedAnyProfile       false (desktop: false, mobile false)
GLProfile.init isAWTAvailable        true
GLProfile.init hasDesktopGLFactory   false
GLProfile.init hasGL234Impl          false
GLProfile.init hasMobileFactory      false
GLProfile.init hasGLES1Impl          false
GLProfile.init hasGLES3Impl          false
GLProfile.init hasGL234OnEGLImpl     false
GLProfile.init defaultDevice         null
GLProfile.init defaultDevice Desktop null
GLProfile.init defaultDevice Mobile  null
GLProfile.init profile order         [GL4bc, GL3bc, GL2, GL4, GL3, GLES3, GL4ES3, GL2GL3, GLES2, GL2ES2, GLES1, GL2ES1]
Exception in thread "AWT-EventQueue-0" com.jogamp.opengl.GLException: No default device available
        at com.jogamp.opengl.GLProfile.getProfileMap(GLProfile.java:2327)
        at com.jogamp.opengl.GLProfile.get(GLProfile.java:1042)
        at com.jogamp.opengl.GLProfile.get(GLProfile.java:1071)
        at com.jogamp.opengl.GLProfile.getMaxProgrammable(GLProfile.java:847)