gpt4 book ai didi

opengl - 如何从服务器 xforwarding openGL 应用程序

转载 作者:行者123 更新时间:2023-12-02 14:11:17 25 4
gpt4 key购买 nike

我有一个带有 nvidia 显卡的服务器,我想运行一些 openGL 应用程序并将显示 xforwarding 到客户端。

我怎样才能做到这一点?目前我还没有安装X window System。

最佳答案

X 转发意味着,所有渲染命令都被封装到 X 传输中,并传输到带有显示器的机器并在那里执行。好处是,远程端不需要任何 GPU。 缺点是,它会消耗(嗯,相当吞噬)大量网络带宽。

OpenGL 2.1 版为 X11 传输指定了 GLX 操作码,因此网络透明。如果您自由使用显示列表并保持传输的数据量较小(即没有客户端顶点数组,只有少量纹理),OpenGL-over-GLX-over-X11-over-TCP 工作得很好。

然而,现在远程渲染更高效,并且只使用高效压缩编解码器传输生成的图像。不过,普通的 X11 转发不能做到这一点。但是您可以使用由“真正的”X 服务器支持的 Xpra 来实现,与实际的 GPU 对话。问题是,您需要那个特定的 X 服务器来占用 GPU。

更好的方法是检测是否有可用的 GLX 扩展,如果没有可用的 GPU,并使用它来渲染成 XSHM 像素图。这样,虚拟帧缓冲服务器上的 Xpra 也可以工作。不幸的是,后来用 OpenGL 实现起来非常困难,因为它透明地跨上下文创建 API 工作。它可以完成(BT;DT),但实际上对于这种事情我实际上更喜欢 Vulkan,因为尽管 Vulkan 很冗长,但与 OpenGL 相比,使用 Vulkan 可靠地完成所需的工作更少。

也许(不太可能)我们会看到一些用于压缩像素图传输的 X11 扩展,一些高压缩 XV 或类似的扩展。这与纯屏幕外 GPU 渲染(我们已经拥有)相结合,将使系统更加高效。

关于opengl - 如何从服务器 xforwarding openGL 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53494718/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com