解决MATLAB在linux下无法使用hardware openGL的问题

  • 2017-04-14
  • 2,190
  • 0
  • 2

最近由于要使用USRP,为了方便所以必须在ubuntu下安装MATLAB,我选择的版本是R2016b,安装过程很顺利,也能正常运行,但是安装完之后出现了一个问题,那就是运行MATLAB的时候会提示:
MATLAB is selecting SOFTWARE OPENGL rendering.
本来也没在意,软件openGL就软件OpenGL吧,但是使用了一段时间以后发现了一些奇怪的问题,比如command windows内容过多的时候,整个窗口会直接花屏,必须重启才行。估计这个就是没有使用硬件OpenGL引起的而一些问题。网上搜了半天,有人说启动时候加nosoftwareopengl参数来启动MATLAB:
matlab -nosoftwareopengl
但是启动以后发现画图的时候报错,输入opengl info发现也报错,后来找到了这篇文章:
http://blog.csdn.net/jkxsanger/article/details/5482572
意思就matlab加载系统库的时候有问题,所以就加载了自己的库,所以实际上问题在于matlab自己库的问题,但是这篇文章没有解决问题,因为实际上在我的情况下matlab是正常识别系统库了,只不过加载不正常。后来在ask ubuntu论坛上找到了真实的原因:
https://askubuntu.com/questions/638081/matlab-r2015a-wont-start-on-14-04
真实原因其实是matlab的libstdc++库和系统库不匹配造成的,只要让matlab使用系统的库就没有问题了,解决方法:

ln -sf /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.22 /home/wjh/MATLAB/sys/os/glnxa64/libstdc++.so.6

这样就能正常使用openGL渲染了,但是打开默认还是software openGL,这里还要设置一下:
在MATLAB里执行:

opengl('save','hardware')

然后重启matlab,这时候,就可以正常使用硬件OpenGL了:

>> opengl info
                          Version: '3.0 Mesa 17.0.2'
                           Vendor: 'Intel Open Source Technology Center'
                         Renderer: 'Mesa DRI Intel(R) HD Graphics 530 (Skylake GT2) '
                   MaxTextureSize: 16384
                           Visual: 'Visual 0xab, (RGBA 32 bits (8 8 8 8), Z depth 16 bits, Hardware acceleration, Double …'
                         Software: 'false'
             HardwareSupportLevel: 'full'
        SupportsGraphicsSmoothing: 1
    SupportsDepthPeelTransparency: 1
       SupportsAlignVertexCenters: 1
                       Extensions: {236×1 cell}
               MaxFrameBufferSize: 16384

评论

还没有任何评论,你来说两句吧

发表评论

*

浙ICP备16016405号-2
浙公网安备 33010602007544号