libGL error unable to load driver in Ubuntu 16.04 while running Matlab R2013b
Show older comments
I was trying to run a m-file on R2013b in Ubuntu 16.04. But i got the error and Matlab just hung:
libGL error: unable to load driver: r600_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: r600
libGL error: unable to load driver: swrast_dri.so
libGL error: failed to load driver: swrast
The m-file tries to draw 3D plots of point clouds after reading ply files and processing them. My Matlab IDE completely froze and i had to use xkill to close it as nothing else worked.
The same code works normally in Windows without any extra configuration. By adding breakpoints and running one by one line, i found that the Matlab's plot3() function is giving trouble. I have previously done 2D plots using plot() function and it worked seamlessly in Ubuntu matlab. Both the files r600_dri.so and swrast_dri.so are in /usr/lib/x86_64-linux-gnu/dri.
What is the purpose of these shared object files? Why plot() does not give error and plot3() does? What does libGL error mean? And how to resolve it?
There are other places that try to address similar problems but they are in different context and difficult for me to extrapolate for my purposes. I would like an answer specific to my problem.
Most unexpectedly, i have also noted that this problem does not happen in R2016a because MATLAB selects its own graphics rendering engine as software opengl and sets it up automatically for its purpose.
Accepted Answer
More Answers (3)
Michael Makovi
on 13 Oct 2017
Edited: Walter Roberson
on 16 Jan 2018
I am using Linux Mint 18.1 with Matlab R2017a. I tried the above, and it did indeed remove the "r600_dri.so" and "swrast_dri.so" errors in the terminal, but now I receive a new error within Matlab itself:
com.jogamp.opengl.GLException: X11GLXDrawableFactory - Could not initialize shared resources for X11GraphicsDevice[type .x11, connection :0, unitID 0, handle 0x0, owner false, ResourceToolkitLock[obj 0x391383c6, isOwner false, <30305970, 363fe0c7>[count 0, qsz 0, owner <NULL>]]]
at jogamp.opengl.x11.glx.X11GLXDrawableFactory$SharedResourceImplementation.createSharedResource(X11GLXDrawableFactory.java:326)
at jogamp.opengl.SharedResourceRunner.run(SharedResourceRunner.java:297)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.NullPointerException
at jogamp.opengl.GLContextImpl.makeCurrent(GLContextImpl.java:688)
at jogamp.opengl.GLContextImpl.makeCurrent(GLContextImpl.java:580)
at jogamp.opengl.x11.glx.X11GLXDrawableFactory$SharedResourceImplementation.createSharedResource(X11GLXDrawableFactory.java:297)
... 2 more
Exception in thread "Startup Class Loader" java.lang.InternalError: XXX0 profile[1]: GL3bc -> profileImpl GL4bc !!! not mapped
at com.jogamp.opengl.GLProfile.computeProfileMap(GLProfile.java:2047)
at com.jogamp.opengl.GLProfile.initProfilesForDeviceCritical(GLProfile.java:1917)
at com.jogamp.opengl.GLProfile.initProfilesForDevice(GLProfile.java:1866)
at com.jogamp.opengl.GLProfile.initProfilesForDefaultDevices(GLProfile.java:1835)
at com.jogamp.opengl.GLProfile.access$000(GLProfile.java:79)
at com.jogamp.opengl.GLProfile$1.run(GLProfile.java:229)
at java.security.AccessController.doPrivileged(Native Method)
at com.jogamp.opengl.GLProfile.initSingleton(GLProfile.java:215)
at com.mathworks.hg.peer.JavaSceneServerPeer.initializeJOGL(JavaSceneServerPeer.java:149)
at com.mathworks.hg.peer.JavaSceneServerPeer.<clinit>(JavaSceneServerPeer.java:119)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at com.mathworks.mde.desk.StartupClassLoader.loadClass(StartupClassLoader.java:262)
at com.mathworks.mde.desk.StartupClassLoader.access$900(StartupClassLoader.java:25)
at com.mathworks.mde.desk.StartupClassLoader$2.run(StartupClassLoader.java:248)
at java.lang.Thread.run(Unknown Source)
4 Comments
Andrew Cox
on 16 Jan 2018
I'm getting exactly the same error - did you find any solution for this?
Walter Roberson
on 16 Jan 2018
Are you using NVIDIA ? If so see https://www.mathworks.com/matlabcentral/answers/342906-could-not-initialize-shared-resources-for-x11graphicsdevice#answer_270207
Andrew Cox
on 17 Jan 2018
No, I'm using an AMD card (Southern Islands - Pitcairn, or model HD 7850) with the radeon/amdgpu drivers. I get the same error on R2017b, R2016b, and R2015b.
Andrew Cox
on 17 Jan 2018
Bashid
on 25 Apr 2019
0 votes
rename the file found at " $MATLAB_ROOT$/sys/os/glnxa64/libstdc++.so.6" to "libstdc++.so.6.old", restart MATLAB.
2 Comments
JUAN JOSE QUIROZ OMAÑA
on 3 Jun 2019
Thanks. Worked for me!
Jisu Ro
on 15 Jun 2020
my god..
I was thinking about re-install nvidia driver or something..
But this simple solution worked for me thanks.
Willem van Boxtel
on 18 Nov 2021
0 votes
This worked for me on Ubuntu 20.04 running Matlab 2021b as well, thank you so much!
Categories
Find more on Startup and Shutdown in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!