通过 SSH 的 OpenGL

通过 SSH 的 OpenGL

我的问题是关于通过 运行 OpenGL ssh。当我在办公室工作站上执行时glxgears(当我亲自在办公室时),它可以正常工作。但是,当我ssh -X通过笔记本电脑(我使用的是 MacBook 和 Xquartz)连接到办公室工作站时,glxgears确实打开了,但齿轮没有移动。

我想远程执行另一个用 pyOpenGL 编写的程序。在办公室工作站上执行时效果完美。但是当我尝试通过从 MacBook 连接到工作站来运行它时,它显示以下错误:

pygame.error: Could not create GL context

我还注意到其他一些事情:在办公室工作站上的输出与通过连接到工作站后在工作站上执行时glxinfo的输出不同。glxinfossh

glxinfo通过以下方式连接后的输出ssh

OpenGL vendor string: Intel Inc.
OpenGL renderer string: Intel(R) Iris(TM) Plus Graphics OpenGL Engine
OpenGL version string: 1.4 (2.1 INTEL-16.1.7)
OpenGL extensions:

glxinfo在工作站上执行时的输出:

OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: GeForce RTX 2070/PCIe/SSE2
OpenGL core profile version string: 4.6.0 NVIDIA 450.66
OpenGL core profile shading language version string: 4.60 NVIDIA
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 4.6.0 NVIDIA 450.66
OpenGL shading language version string: 4.60 NVIDIA
OpenGL context flags: (none)
OpenGL profile mask: (none)
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.2 NVIDIA 450.66
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20
OpenGL ES profile extensions:

任何帮助,将不胜感激

答案1

但是,当我从笔记本电脑(我使用的是 MacBook 和 Xquartz)通过 ssh -X 连接到办公室工作站时,glxgears 确实打开了,但齿轮没有移动。

这是因为 X 协议并不总是适用于 OpenGL,它可能需要内存中的共享缓冲区和其他东西。

你需要类似的东西虚拟GL为了实现这一点,他们实际上对此有一个很好的解释背景

相关内容