MATLAB R2015a または R2014b では、ハードウェアベースの OpenGL レンダリングは使用できません。 R2014b以前は、MATLABグラフィックスタックを再構築する前に、すべてがうまく機能していました。 MATLABから
>> opengl info
Version: '3.0 Mesa 10.6.5'
Vendor: 'Intel Open Source Technology Center'
Renderer: 'Mesa DRI Intel(R) Sandybridge Mobile '
MaxTextureSize: 8192
Visual: 'Visual 0xac, (RGBA 32 bits (8 8 8 8), Z depth 16 bits, Hardware acceleration, Double buffer, Antialias 4 samples)'
Software: 'true'
SupportsGraphicsSmoothing: 1
SupportsDepthPeelTransparency: 1
SupportsAlignVertexCenters: 1
Extensions: {199x1 cell}
MaxFrameBufferSize: 8192
私は「ソフトウェア」が偽物であると予想/希望します。
$ ldd /opt/tmw/matlab/bin/glnxa64/glren.so | grep libGL
libGL.so.1 => /usr/lib/libGL.so.1 (0x00007f0a3b871000)
libGLU.so.1 => /usr/lib/libGLU.so.1 (0x00007f0a3b5ef000)
MATLABはシステムライブラリ(TMWが望むもの)を探していることを示し、TMWはライブラリバージョンlibGL.so.1.2.0とlibGLU.so.1.3.1が互換性があることを確認します。
$ LIBGL_DEBUG=verbose matlab
libGL: OpenDriver: trying /usr/lib/xorg/modules/dri/tls/i965_dri.so
libGL: OpenDriver: trying /usr/lib/xorg/modules/dri/i965_dri.so
libGL: Using DRI2 for screen 0
有用な情報を提供しません。 TMWテクニカルサポートチームに連絡しましたが、彼らはこれがMATLABの問題だとは思いません。
$ glxinfo | grep render
direct rendering: Yes
OpenGL renderer string: Mesa DRI Intel(R) Sandybridge Mobile
ハードウェアベースのOpenGLは、MATLABの外部で動作することをお勧めします。私はIntelグラフィックを使用してArch Linuxでほとんどのテストを実行しましたが、ATIとNvidiaグラフィックも試しましたが、成功しませんでした。正式にサポートされているOSなので、最近Debian 7 chrootを作成しましたが、まだIntelカードを使用していません。
すべての作業は、デフォルトのArchカーネルを使用して行われました。これが問題の原因になりますか?問題をデバッグ/追跡する方法は?
答え1
私には次のような効果がありました(R2017a(試用版)がインストールされたArchLinux、Intelグラフィックがインストールされているノートブックのみ):
export LD_PRELOAD=/usr/lib/libstdc++.so
export LD_LIBRARY_PATH=/usr/lib/xorg/modules/dri/
/net/sw/MATLAB/R2017a/bin/glnxa64/MATLAB
最後の手順では、(一部のLD_ *操作を実行するヘルパースクリプトの代わりに)MATLAB実行可能ファイルを直接呼び出します。
>> opengl info
Version: '3.0 Mesa 17.0.0'
Vendor: 'Intel Open Source Technology Center'
Renderer: 'Mesa DRI Intel(R) Haswell Mobile '
MaxTextureSize: 16384
Visual: 'Visual 0xcb, (RGBA 32 bits (8 8 8 8), Z depth 16 bits, Hardware acceleration, Double buffer, Antialias 8 samples)'
Software: 'false'
HardwareSupportLevel: 'full'
SupportsGraphicsSmoothing: 1
SupportsDepthPeelTransparency: 1
SupportsAlignVertexCenters: 1
Extensions: {230×1 cell}
MaxFrameBufferSize: 16384
答え2
MATLABのインストールパスにlibstdc ++.so.6 *ライブラリがありますか? MATLABには、古いバージョンのC ++標準ライブラリが付属しています。最新バージョンのGCCディストリビューションでMesaをコンパイルすると、実際のハードウェアアクセラレーションバックエンドをロードできなくなり、ソフトウェアレンダリングが強制されます。あなたはできます努力するMATLABインストールからこのファイルを削除します(ディストリビューションのインストールから削除しないでください。削除すると完全に中断されます。)、これは役に立ちます。インストール中にこれを行いますが、不要なアイテムを削除しないように注意したくありません。
あなたのコマンドopengl info
から少し違うメッセージが出ると予想しているので、これが役に立つかどうかはわかりませんが、試してみる価値はあります。