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

解决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.

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值