0

我正在寻找一种方法来控制在 Linux 上使用 X.Org 时哪些应用程序有权使用 GPU 和视频内存。

设置:

我正在开发一个嵌入式 Linux 系统,其中几个 3D 游戏在启动时启动。我正在启动所有游戏,以便它们存在于内存中,这使得它们可以在它们之间快速切换。

这个想法是一次只能看到一个游戏。这是通过映射活动游戏的窗口和取消映射非活动游戏的窗口来完成的。即“最小化”非活动游戏的窗口。

问题:

活动游戏的性能不是最佳的,因此即使它们的窗口未从 X.Org 映射,不活动游戏似乎仍在占用显卡资源。

到目前为止我已经尝试过:

我目前的解决方案是暂停不活跃的游戏,只恢复活跃的游戏。然而,这并不是最优的,因为我也想与不活动的游戏进行 IPC 通信。

问题:

我怎样才能禁止 Linux 应用程序访问显卡,这样它们对显卡的绘制调用就被简单地忽略了。

4

1 回答 1

2

如果您的游戏启动缓慢,是时候优化它了。

如果游戏处于非活动状态且未使用 GPU 资源,则驱动程序最终会将所有 OpenGL 资源从 GPU 内存中交换出来,因此当游戏恢复时,当 OpenGL 驱动程序将资源交换回 GPU 内存时,它将经历一些明显的延迟。

仅仅取消映射一个窗口是不够的,你还必须停止主游戏循环,这样它们就不会消耗 CPU 内存。

如何禁止Linux X11 应用程序访问显卡,从而简单地忽略它们对显卡的绘制调用。

使用当前一代 X11 和驱动程序:切换到另一个 VT,而不是运行它的 X11 服务器。您可以启动任意数量的 X11 服务器,但在任何给定时间,只有一个可以在显示 VT 上处于活动状态。

请注意,在正确的驱动架构和驱动程序的情况下,非活动 VT 也可以访问 GPU,但现在情况并非如此。

于 2013-06-28T10:13:23.803 回答