J'ai un PC faible (client) mais avec des performances 3D acceptables, et un PC fort (serveur) qui devrait être capable d'exécuter une application en utilisant OpenGL deux fois, c'est-à-dire une fois localement et une fois à distance pour le client. Actuellement, j'y suis ssh -X
, mais la sortie de la console du client indique que le rendu logiciel est utilisé et je n'obtiens que 3 images par seconde (fps). En fait, le chiffrement de ssh n'est pas nécessaire car c'est sur un LAN, mais c'est ce que je sais déjà pour les applications distantes ...
Alors, comment augmenter les performances du client? Mes idées sont
- utiliser l'accélération matérielle, mais celle du serveur ou du client et comment?
- utiliser quelque chose de différent de ssh
Je sais qu'en pleine résolution et sans compression sophistiquée, un LAN à 100 Mbit / s ne fera pas plus de fps, mais c'est une application fenêtrée de ca. 800x450, donc théoriquement jusqu'à 12 ips (à 24 bits / pixel) devrait être possible en utilisant des données graphiques non compressées. Et peut-être que quelque chose de mieux est possible en utilisant le propre GPU du client ou une compression intelligente.
-
edit Il s'avère que ce que je veux est essentiellement une version locale de ce que proposent par exemple onlive et gaikai . Existe-t-il quelque chose comme ça pour Linux (et éventuellement gratuit)?
-
edit2 VirtualGL ressemble à la meilleure solution (bien qu'il ne fonctionne pas actuellement pour moi), mais je me demande s'il est également possible de faire du rendu matériel sur le client
Réponses:
Vous pouvez vérifier VirtualGL avec TurboVNC devrait vous fournir 20fps @ 1280x1024 sur 100 Mbit ( voir wikipedia ).
Notez qu'il peut ne pas fonctionner avec toutes les applications, cela dépend de la façon dont elles utilisent OpenGL.
la source
C'est une vieille question mais elle est toujours d'actualité. Il y a un manuel étape par étape sur la façon de configurer et de dépanner le rendu 3D X11 de l'application distante sur le matériel local: Accélération matérielle OpenGL via une connexion ssh x11 distante
Le jeu Chromium BSU est utilisé dans l'article comme exemple. Il fonctionne avec 5-8 FPS avec rendu logiciel par défaut via une connexion SSH, 30 FPS avec rendu matériel indirect et> 30 FPS avec connexion TCP X11 non chiffrée. Notez que cela ne fonctionne que pour certaines applications.
Bref résumé de l'article
Le rendu indirect et les connexions TCP sont désactivés dans la configuration du serveur X11 par défaut.
+iglx and -listen tcp
les paramètres les permettent. Il existe également uneLIBGL_ALWAYS_INDIRECT=1
variable qui force le rendu indirect sur le client X11.la source
lightdm
aveciglx
" tel). Actuellement, je n'en ai plus besoin, mais je vais l'essayer la prochaine fois;) Peut-être que quelqu'un d'autre trouve également vos conclusions utiles.Cela pourrait être vrai si vous avez deux PC de bureau. Mais si vous avez un ancien ordinateur portable WiFi utilisable n'importe où à la maison (par exemple Ti5600 avec Ubuntu 10.04 comme client, et un PC de bureau avec une carte GTX avec un routeur Wi-Fi de rechange, avoir un client OpenGL distant semble une bonne idée.
Le problème est d'obtenir un contexte OpenGL distant (côté serveur). Vous pouvez exécuter ssh -X sur votre client. Mais si vous exécutez glxinfo sur le système distant, vous obtenez votre client local, ce qui vous ramène là où vous avez commencé. Vous pouvez définir votre variable d'environnement DISPLAY sur cet hôte distant, et vous pouvez utiliser cet écran comme deuxième moniteur, ce qui n'aide toujours pas.
Une autre solution consiste à écrire vos applications de bureau afin qu'elles puissent utiliser un contexte GLX distant:
http://arrayfire.com/remote-off-screen-rendering-with-opengl/
la source