はじめに
OpenGLアプリをリモートデスクトップで動かすとまともに動かなかったりします。
以前調べたときはリモートデスクトップで起動するとOpenGLがWindows標準のソフトウェアレンダラーを使用してしまうとの書き込みがありました。つまりOpenGLのバージョンが1.1相当になってしまうようです。
仮想環境でも一般的にOpenGLのサポートは弱いですよね。1年前くらいにParallelsでWindows使ってましたが、OpenGL 2.0くらいでした。
普通にクライアントPCで起動する際にもGPUドライバの不具合があって表示に不具合がでることがあります。
そのような時、遅くても確実に動くソフトウェアレンダラーを使用したいことがあります。Windows標準のソフトウェアレンダラ?はOpenGL 1.1でさすがに機能少なすぎるので、
Mesa 3D Graphics Library
を試してみることにしました。
Mesaとは
OpenGLのオープンンソース実装です。昔はLinux用のグラフィックスアクセラレータのドライバとかなかったのでLinuxでよく使われていた気がします。Windowsでは上記の必要がないとなかなか使わないかもしれません。
ビルドはなかなかハードル高いのでこちらからダウンロードしました。
https://sourceforge.net/projects/msys2/files/REPOS/MINGW/x86_64/
mingw-w64-x86_64-mesa-11.0.5-1-any.pkg.tar.xz
Mesaの実行
ダウンロードしたファイルを展開するとopengl32.dllがありますので、アプリケーションと同じフォルダに置くだけです。
GL_VENDOR : VMware, Inc.
GL_RENDERER : Gallium 0.4 on llvmpipe (LLVM 3.7, 256 bits)
GL_VERSION : 3.0 Mesa 11.0.5 (git-27c6440)
GL_SHADING_LANGUAGE_VERSION : 1.30
手元のOpenGLプログラムはOpenGL 3.3くらいの機能を使っていたので、いろいろ動かない箇所がありました。ジオメトリシェーダどうしよう。。
Mesaの実行速度
とりあえず実行速度だけ試しました。比較対象は下記の環境。
GL_VENDOR : NVIDIA Corporation
GL_RENDERER : NVS 4200M/PCIe/SSE2
GL_VERSION : 4.5.0 NVIDIA 354.13
GL_SHADING_LANGUAGE_VERSION : 4.50 NVIDIA
CPUは型番記録し忘れましたが、core i7の3000番台で2コアのやつです。
10万triangles程度のデータを表示してみると、
Mesa : 約13fps
Nvidia : 約130fps
Mesa思ったより速いですね。緊急用には十分か。
0 件のコメント:
コメントを投稿