yann-qu

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  30 随笔 :: 0 文章 :: 2 评论 :: 36689 阅读

解决Matlab在Linux下无法使用hardware OpenGL的问题

1 报错信息

在命令行使用命令matlab -nodesktop -nosplash启动Matlab时,出现如下报错:

MATLAB is selecting SOFTWARE OPENGL rendering.

在查阅ArchWiki Matlab OpenGL Acceleration栏目后,发现这是因为Matlab未启用OpenGL硬件加速,只启用了OpenGL软件加速造成的。

2 问题原因

问题原因:Matlab使用了自己的libstdc++.so库,版本为6.0.25。

$ ll -a ~/MatlabR2021a/sys/os/glnxa64/libstdc++*
# 输出:
# -r-xr-xr-x 1 yann yann 45 Nov 15 2020 /home/yann/MatlabR2021a/sys/os/glnxa64/libstdc++.so.6 -> /home/yann/MatlabR2021a/sys/os/glnxa64/libstdc++.so.6.0.25

而系统中libstdc++.so库版本与安装包自带的版本不同,版本为6.0.28:

$ ll -a /usr/lib/x86_64-linux-gnu/libstdc++*
# 输出:
# lrwxrwxrwx 1 root root 19 Apr 17 10:00 /usr/lib/x86_64-linux-gnu/libstdc++.so.6 -> libstdc++.so.6.0.28
# -rw-r--r-- 1 root root 1.8M Jan 10 2021 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.28

3 解决方案

将Matlab中的libstdc++.so链接到系统中的该库即可。

$ sudo ln -sf /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.28 /home/yann/MatlabR2021a/sys/os/glnxa64/libstdc++.so.6

重启Matlab,发现该报错会自动消失。

如果重启后还是出现,可以在Matlab中使用opengl('save','hardware')默认开启OpenGL硬件加速。

4 新的问题

修改后打开Matlab Gui可能会出现如下报错:

com.jogamp.opengl.GLException: X11GLXDrawableFactory - Could not initialize shared resources for X11GraphicsDevice[type .x11, connection :0, unitID 0, handle 0x0, owner false, ResourceToolkitLock[obj 0x76ddc7cd, isOwner false, <6876ff80, 5d5c50dc>[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(Thread.java:748)
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

解决方案见ArchWiki Matlab OpenGL Acceleration


Ref 1.
Ref 2.
Ref 3.

posted on   yann-qu  阅读(501)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示