Запуск игры с использованием 3D-ускорения в отдельном виртуальном терминале замедляется, если не выполняется от имени пользователя root
Я собрал простой скрипт для запуска Neverwinter Nights из отдельного виртуального терминала:
#!/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'
и, конечно же, он работает без нареканий.
У кого-нибудь есть хорошее предложение, как это сделать?
Вот некоторые из вещей, которые я пробовал:
- Запустите X под sudo, затем вставьте
su -c ./nwn myusername
в сценарии - Запустил игру & X как мой пользователь, затем побежал
schedtool
от отдельного виртуального терминала сsudo
изменить настройки текущего запущенного процесса, но ничего не изменилось- Это, кажется, указывает
schedtool
не собирается делать ничего хорошего
- Это, кажется, указывает
1 ответ
Я просто понял это. Я добавил себя в video
а также games
группа. Я не уверен, кто это сделал, но это сработало.
Одна странность, с которой я столкнулся, когда возился с этим: перед изменением группы я запустил glxgears; В качестве пользователя root он получал примерно тот же FPS, как если бы я запускал его из сеанса по умолчанию, но как мой пользователь сообщал о скорости около 500 кадров в секунду.