通过 Xpra 进行游戏

通过 Xpra 进行游戏

我有一个本地千兆连接,远远超出了我的需求,但它绝对可以轻松支持 1080p 视频和音频流。我的问题有两个,第一是输入,第二是初始化 GLX 上下文。

运行 Minecraft 后,令我惊讶的是,它启动得很完美,唯一的问题是它只记录了 1/100 时间的按键,视图也表现得好像鼠标在旋转。我认为这是因为鼠标没有锁定在程序上,而是读取当前光标位置而不是相对运动。许多事件似乎没有通过 xpra 传递,例如按键按下和松开、鼠标锁定,我相信还有很多其他事件。

第二个问题是启动尝试创建某种 GLX 上下文的 3D 应用程序。 glxgears可以,但许多 3D 应用程序无法启动,例如通过 wine 的 Battle.net、Garrys mod 和 VRChat 返回glXChooseVisual failed

所有应用程序在没有 xpra 的主机上都能正常运行。


我的问题是:如何克服这些问题,以便通过从主机到客户端的 xpra 连接无缝玩游戏?

我正在运行一个非常强大的桌面服务器和一台带有 xpra 客户端的轻量级笔记本电脑,两者都装有 Arch Linux。

答案1

我有一个本地千兆连接,远远超出了我的需求,但它绝对可以轻松支持 1080p 视频和音频流

1080p 60Hz,24 位色彩,使用 3.20 Gbps,参见标准视频的刷新频率限制,因此严格来说,千兆连接是不够的,除非您使用某种形式的快速压缩和/或损失一些质量,或者您愿意跳过帧。Xpra 可以做所有这些事情。

唯一的问题是它只能记录 1/100 的按键时间

这很奇怪,从未有人报告过这种情况。您可能想使用键盘同步选项,如果失败,请在 xpra 错误跟踪器上提交工单。

相信这是因为鼠标没有锁定在程序上,读取当前光标位置而不是相对运动

我猜是指针加速,你可以尝试使用uinput 虚拟指针反而。

许多事件似乎没有通过 xpra 传递,例如按键按下和弹起、鼠标锁定,我相信还有很多其他事件。

除非另有证据,否则这些事件始终会被传递 - 尽管 Minecraft 可能正确处理它们,也可能不正确。您可以使用调试开关运行 xpra 客户端和/或服务器-d keyboard来查看这些事件。

第二个问题是启动尝试创建某种 GLX 上下文的 3D 应用程序。

开源开源软件

答案2

对于在远程 Linux 系统上玩游戏来说,Xpra 是一个非常糟糕的选择,尤其是对于需要捕获鼠标才能正常工作的 fps 游戏,我强烈建议你看看这个名为阳光,它让你可以从基本上任何其他平台在远程 Linux 系统上玩游戏,而且它的性能真的非常好,看看他们的文档

相关内容