Запуск игры с использованием 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 кадров в секунду.