Faire fonctionner WebGL sur un serveur Amazon EC2


8

J'essaie de faire fonctionner WebGL sur mon serveur Amazon EC2 (migration à partir d'un Mac Mini de bureau, qui a beaucoup de hoquet).

J'ai travaillé quelques jours pour que cela fonctionne, mais je vais essayer de commencer là où j'ai commencé.

J'ai d'abord installé l'AMI suivante Ubuntu Server 12.04 LTS (HVM) - ami-8c8675fbavec le type d'instance cg1.4xlarge. J'ai choisi ce type d'instance pour qu'il soit accompagné d'un Cirrus Logic GD 5446pour les exécutions graphiques.

Bien sûr, l'installation principale est sans tête, j'ai donc dû construire ce serveur à partir de zéro, ce que j'ai d'abord fait.

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

Après cela, j'ai installé un serveur LAMP (l'habituel) et j'ai mis à jour le noyau vers 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.

J'ai également enregistré le PPA xorg edgers sur https://launchpad.net/~xorg-edgers/+archive/ppa .

Après le redémarrage, j'ai dû connecter un écran à mon serveur, j'ai choisi de le faire avec vnc4server.

Voilà donc l'habituel et mon xstartup ressemble à ceci:

#!/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 &

Après avoir démarré mon serveur VNC et l'avoir connecté, j'ai vérifié mon glfxinfo, donc DISPLAY=:1 glxinfo(Affichage: 1 est le VNC)

Le premier résultat a été:

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

J'ai corrigé celui-ci en installant le nvidia-currentpackage. Je savais déjà que WebGL pouvait fonctionner, j'avais besoin de GLX version 1.3 au moins. J'ai donc donné glxinfoun autre swing et qui a donné la sortie suivante:

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

Comme vous pouvez voir que la version GLX ne suffit pas pour exécuter WebGL, j'ai essayé tous les guides à ce sujet. Aucun d'entre eux ne semble augmenter la version GLX. Vous vous demandez probablement pourquoi WebGL, eh bien je l'ai fait fonctionner sur un serveur Mac Mini, qui a parfaitement fonctionné pour créer une belle vidéo 3D. Ne cherchez pas à modifier le code, cherchez simplement à le récupérer dans le Cloud. J'ai également essayé le serveur Windows, mais il a rencontré beaucoup de problèmes ffmpeg, ce n'est donc pas une option. Vous songez maintenant à obtenir un serveur cloud Mac OS, mais vous vous demandez toujours ce qui ne va pas ici.

Donc ma question: est-il même possible de le faire sur mon serveur Amazon EC2? Et si oui, comment?

PS Lorsque j'exécute chrome-browser à partir de la ligne de commande, voici mon erreur:

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.

Réponses:


1

L'exécution d'applications OpenGL dans une machine virtuelle ne fonctionnera probablement pas bien. Tout d'abord, vous ne pouvez pas utiliser l'accélération matérielle mais devez vous rabattre sur un logiciel de rendu. Voici ce que vous indique le premier message d'erreur:

libGL error: failed to load driver: swrast

L'installation du pilote Nvidia n'aide pas car il n'y a pas de carte Nvidia disponible - d'où le deuxième message d'erreur. L'utilisation d'un moteur de rendu est possible, mais elle sera très lente.

La réponse est donc: oui, il pourrait être possible de faire ce que vous voulez, mais à moins qu'il n'y ait du matériel dédié qui joue bien avec VNC sur l'hôte virtuel, ce ne sera pas une expérience agréable.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.