在单独的虚拟终端中使用 3D 加速运行游戏速度很慢,除非以 root 身份运行

在单独的虚拟终端中使用 3D 加速运行游戏速度很慢,除非以 root 身份运行

我编写了一个简单的脚本,用于从单独的虚拟终端运行《无冬之夜》:

#!/bin/bash
read -r -d '' myrcfile <<'EOF'
#!/bin/bash
cd /path/to/game
./nwn
EOF

XINITRC=<(echo "${myrcfile}") xinit -- :1 vt8

虽然这可行,但游戏玩起来相当不顺畅。作为参考,它从初始/默认 X 实例运行良好。

我摆弄了一会儿,schedtool看看能否使它变得更好,起初我似乎成功了,但实际上,改进不是因为 schedtool,而是因为我 [天真地] 这样做了:

sudo schedtool ${parms} -e ./nwn
^^^^

schedtool... 因为的一些参数需要 root(注意:${parms}是各种schedtool参数的组合)。 schedtool不是速度提升的原因——sudo是。 为了确保情况确实如此,我用 替换了内部脚本的最后一行gnome-terminal -c 'sudo ./nwn',果然它运行完美。

有人对如何做到这一点有什么好的建议吗?

以下是我尝试过的一些方法:

  • 在 sudo 下运行 X,然后输入su -c ./nwn myusername脚本
  • 以我的用户身份运行游戏和 X,然后schedtool从单独的虚拟终端运行,以sudo更改当前正在运行的进程的设置,但没有任何变化
    • 这似乎表明schedtool不会有任何好处

答案1

我刚刚才搞明白。我把自己添加到了videoandgames组中。我不确定是哪个组做的,但确实有效。

我在处理这个问题时遇到了一个奇怪的事情:在进行组更改之前,我运行了 glxgears;作为 root,它获得的 FPS 与我从默认会话运行它时获得的 FPS 大致相同,但作为我的用户,它报告大约500fps。

相关内容