web-dev-qa-db-ja.com

Amazon EC2サーバーでWebGLを実行する

Amazon EC2サーバーでWebGLを動作させようとしています(多くの問題があるオフィス向けMac Miniから移行しています)。

これを実行するために数日働きましたが、私が始めたところから始めようとします。

最初に、インスタンスタイプcg1.4xlargeで次のAMI Ubuntu Server 12.04 LTS (HVM) - AMI-8c8675fbをインストールしました。このインスタンスタイプを選択したので、グラフィカルな実行のためにCirrus Logic Gd 5446が付属しています。

もちろん、プライマリインストールはヘッドレスであるため、最初からこのサーバーをゼロから構築する必要がありました。

Sudo apt-get install ubuntu-desktop
Sudo apt-get install gdm
Sudo /etc/init.d/gdm start
Sudo dpkg-reconfigure xserver-xorg
Sudo apt-get install gnome-core

その後、LAMPサーバー(通常)をインストールし、カーネルをLinux ip-172-31-29-168 3.8.0-37-generic #53~precise1-Ubuntu SMP Wed Feb 19 21:37:54 UTC 2014 x86_64 x86_64 x86_64 GNU/Linuxに更新しました。

また、xorg edgers PPAを https://launchpad.net/~xorg-edgers/+archive/ppa に登録しました。

再起動後、画面をサーバーに接続する必要があったため、vnc4serverでこれを行うことにしました。

それがいつものことで、私のxstartupは次のようになります。

#!/bin/sh

# Uncomment the following two lines for normal desktop:
unset SESSION_MANAGER
#exec /etc/X11/xinit/xinitrc
gnome-session --session=gnome-classic &

[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
#x-terminal-emulator -geometry 1280x1024+10+10 -ls -title "$VNCDESKTOP Desktop" &
#x-window-manager &

VNCサーバーを起動して接続した後、glfxinfoをチェックアウトしたので、DISPLAY=:1 glxinfo(ディスプレイ:1はVNCです)

最初の出力は次のとおりです。

name of display: :1
libGL error: failed to load driver: swrast
libGL error: Try again with LIBGL_DEBUG=verbose for more details.
Error: couldn't find RGB GLX visual or fbconfig
Error: couldn't find RGB GLX visual or fbconfig

nvidia-currentパッケージをインストールして、これを修正しました。 WebGLを実行するには既に知っていましたが、少なくともGLXバージョン1.3が必要でした。そこで、glxinfoをもう1回振ると、次の出力が得られました。

ubuntu@ip-172-31-29-168:~$ DISPLAY=:1 glxinfo | grep version
Xlib:  extension "NV-GLX" missing on display ":1".
Xlib:  extension "NV-GLX" missing on display ":1".
server glx version string: 1.2
client glx version string: 1.4
GLX version: 1.2
OpenGL core profile version string: 1.3 Mesa 4.0.4
OpenGL version string: 1.3 Mesa 4.0.4

あなたが見ることができるように、GLXバージョンはWebGLを実行するのに十分ではないので、私はこれに関するすべてのガイドを試しました。それらのどれもGLXバージョンを上げるようではありません。おそらく、WebGLがMac Miniサーバーで実行されていた理由を尋ねているでしょう。これは、Nice 3Dビデオを作成するのに完璧に機能しました。コードを編集するのではなく、クラウドでコードを取得するだけです。また、Windowsサーバーを試しましたが、ffmpegで多くの問題が発生したため、これもオプションではありません。 Mac OSクラウドサーバーを入手することを考えていますが、ここで何が問題になっているのでしょうか。

私の質問:Amazon EC2サーバーでこれを行うことさえ可能ですか?もしそうなら、どのように?

追伸コマンドラインからchrome-browserを実行すると、これは私のエラーです:

ubuntu@ip-172-31-29-168:~/.vnc$ DISPLAY=:1 chromium-browser --enable-webgl
[12243:12243:0307/155523:ERROR:gl_surface_glx.cc(413)] GLX 1.3 or later is required.
[12243:12243:0307/155523:ERROR:gl_surface_x11.cc(58)] GLSurfaceGLX::InitializeOneOff failed.
8
Pepijn

仮想マシン内でOpenGLアプリケーションを実行すると、パフォーマンスが低下する可能性が非常に高くなります。まず、ハードウェアアクセラレーションを使用することはできませんが、ソフトウェアレンダラーにフォールバックする必要があります。これは、最初のエラーメッセージが示す内容です。

libGL error: failed to load driver: swrast

Nvidiaドライバーをインストールしても、利用可能なNvidiaカードがないため、役に立ちません-2番目のエラーメッセージ。ソフトウェアレンダラーの使用は可能ですが、非常に遅くなります。

答えは次のとおりです。はい、あなたがやりたいことができるかもしれませんが、仮想ホスト上でVNCとうまく機能する専用ハードウェアがない限り、これは素晴らしい体験ではありません。

1
antiguru