.png)
Estoy intentando ejecutar una aplicación OpenGL 2.1+ a través de SSH.
[mi computadora] --- conexión ssh --- [máquina remota] (aplicación)
Utilizo el reenvío X para ejecutar esta aplicación y, con eso en mente, creo que hay un par de formas para que esta aplicación cree gráficos 3D:
- Usando LIBGL_ALWAYS_INDIRECT, se puede usar el hardware de gráficos de mi computadora. De acuerdo aesta publicaciónesto generalmente se limita a la versión 1.4 de OpenGL.
- Usando el software Mesa para renderizar en la máquina remota. Esto admite versiones superiores de OpenGL, pero usa la CPU.
Sin embargo, en mi caso la máquina remota tiene una tarjeta gráfica decente. Así que en lugar desoftwarerenderizado, me preguntaba si podría funcionarhardwarerenderizando de forma remota en su lugar.
Además, si hay otra forma de utilizar la tarjeta gráfica de mi máquina, también sería genial.
Respuesta1
La elección no es necesariamente entre renderizado indirecto y renderizado por software, sino más precisamente entre renderizado directo e indirecto. La renderización directa se realizará en el cliente X (la máquina remota), luego los resultados de la renderización se transferirán al servidor X para su visualización. La representación indirecta transmitirá comandos GL al servidor X, donde esos comandos se representarán utilizando el hardware del servidor. Dado que desea utilizar el hardware 3D en la máquina remota, debe optar por la renderización directa (y aceptar la sobrecarga de transmitir imágenes rasterizadas renderizadas a través de la red).
Si su aplicación no puede funcionar con OpenGL 1.4, la representación directa es su única opción.
Respuesta2
Solía tener una configuración remota ssh para ejecutar el controlador opengl parcheado. Pero eso implicó algunos trucos como secuestrar un servidor X remoto para renderizar (iniciar sesión en una máquina remota, iniciar sesión mediante ssh y configurar DISPLAY en :0). Para su caso, tiene más sentido separar xserver fuera de la pantalla. No recuerdo si es posible iniciar xserver de forma remota en modo fuera de pantalla pero con los controladores de GPU cargados. El proyecto VirtualGL parece prometer que admite exactamente lo que estás buscando. Nunca lo he probado, pero el sitio web parece prometedor.
http://www.virtualgl.org/About/Introduction
Otras alternativas son vnc y xdmcp. Permiten el acceso a un entorno de escritorio remoto completo.