Matlab 使用 OpenGL 硬件加速
删掉了几个开头之后决定文明用语
问题是这样的,在 Linux 下 Matlab 默认使用 OpenGL 的软件加速进行渲染(至少英文直译过来是这样的)。
但是总归看着图上的锯齿很蛋疼啊,怎么办呢。
第一反应:我把 n 卡屏蔽了,开 optirun
呗。
开就开。
$ optirun glxgears -info
[ 1914.305050] [ERROR]Cannot access secondary GPU - error: Could not load GPU driver
[ 1914.305086] [ERROR]Aborting because fallback start is disabled.
???怎么就用不了了呢?
开机启动 bumblebeed
服务……好,重启之后直接整个系统 down 掉了。
那可能是 X 服务没有识别 n 卡设备(因为 modprobe -r nvidia
也报错嘛),那加一个 /etc/X11/xorg.conf.d/10-nvidia.conf
?
重启之后卡在了 lightdm 登录界面前面(进 tty 抢救一下)。
转念一想虽然核显辣鸡但是好坏也能硬件加速啊,于是寻找玄学。
功夫不负有心人,发现大概是 Matlab 自带的 GL 库太辣鸡,只要链接到系统的库上就可以了。
sudo ln -s /usr/lib/libGLU.so.1 libGLU.so.1
sudo ln -s /usr/lib/libGL.so.1 libGL.so.1
但是,且慢!还需要进行 玄学 配置
$ export LD_PRELOAD=/usr/lib/libstdc++.so; export LD_LIBRARY_PATH=/usr/lib/xorg/modules/dri/; /usr/bin/matlab -nodesktop -nosplash -r "opengl info; exit" | grep Software
Software: 'false'
脑子坏掉了在 $PATH
里建了这个叫 matlab
的脚本
$ cat ~/bin/matlab
export LD_PRELOAD=/usr/lib/libstdc++.so
export LD_LIBRARY_PATH=/usr/lib/xorg/modules/dri/
matlab
Ref