GameMode - это комбинация Daemon/Lib для Linux, которая позволяет играм запросить набор оптимизаций, которые будут временно применены к ОС хост и/или игровому процессу.
GameMode был разработан главным образом в качестве решения для стоп-заглушки для проблем с PowerSave или губернаторами CPU Intel и AMD, но теперь он находится в ряде функций оптимизации и конфигураций.
В настоящее время GameMode включает в себя поддержку оптимизаций, включая:
SCHED_ISO )Пакеты GameMode доступны для Ubuntu, Debian, Solus, Arch, Gentoo, Fedora, OpenSuse, Mageia и, возможно, больше.
О проблемах с GameMode следует сообщать здесь, в разделе «Проблемы», и не сообщается о диких напрямую.
Для игр/пусковых установок, которые интегрируют поддержку GameMode (см. Список позже), простое запуск игры автоматически активирует GameMode.
Для других вы должны вручную запросить GameMode при запуске игры. Это можно сделать, запустив игру через gamemoderun :
gamemoderun ./gameИли отредактировать параметры запуска Steam:
gamemoderun %command% Примечание. Для старых версий GameMode (до 1.3) используйте эту строку вместо gamemoderun :
LD_PRELOAD="$LD_PRELOAD:/usr/$LIB/libgamemodeauto.so.0"
Обратите внимание, что требуется обратная черта здесь, в $LIB .
Демон настроен с файлом gamemode.ini . Пример/gamemode.ini является примером того, как будет выглядеть этот файл, с объяснениями всех переменных.
Файлы конфигурации загружаются и объединяются из следующих каталогов, от максимального до самых низких приоритетов:
$PWD ("небезопасно" - [gpu] Настройки не влияют на этот файл )$XDG_CONFIG_HOME или $HOME/.config/ ("небезопасно" - [gpu] Настройки не влияют на этот файл )/etc//usr/share/gamemode/ Невозможно интегрировать такие команды, как Optirun автоматически в GameMode, поскольку запрос GameMode выполняется после того, как игра уже началась. Однако можно использовать гибридную обертку GPU, такую как Optirun, запустив игру с gamemoderun .
Вы можете сделать это, установив переменную среды GAMEMODERUNEXEC для команды запуска вашей упаковки, так что, например, GAMEMODERUNEXEC=optirun , GAMEMODERUNEXEC="env DRI_PRIME=1" , или GAMEMODERUNEXEC="env __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia __VK_LAYER_NV_optimus=NVIDIA_only" . Эта переменная среды может быть установлена во всем мире (например, в /и т. Д. /Среда), чтобы одна и та же команда префикса не должна быть дублирована везде, где вы хотите использовать gamemoderun .
GameMode не будет введен в обертку.
Известно, что следующие игры интегрируют поддержку GameMode (это означает, что они не требуют дополнительной конфигурации для активации GameMode во время работы):
Другие приложения, которые могут интегрироваться с GameMode, включают:
Дизайн Gamemode имеет четкую абстракцию между демоном хоста и библиотекой ( gamemoded и libgamemode ), и клиентскими погрузчиками ( libgamemodeauto и gamemode_client.h ), которые позволяют безопасно использовать, не беспокоясь о том, установлен ли демон или запускается. Этот дизайн также означает, что, хотя библиотека хостов в настоящее время опирается на systemd для обмена сообщениями с Daemon, вполне возможно внедрить другие внутренние внутренние периоды, которые все еще работают с теми же клиентами.
См. Подказатории репозиторий для получения информации о каждом компоненте.
GameMode зависит от meson для создания и systemd для внутренней связи. Этот репо содержит сценарий bootstrap.sh , чтобы обеспечить быстрое установку в пользовательскую шину, но проверяйте meson_options.txt для пользовательских настроек.
dbus-user-session ) apt install meson libsystemd-dev pkg-config ninja-build git libdbus-1-dev libinih-dev build-essential На Ubuntu 18.04 вам нужно установить пакет python3 и установить последнюю версию Meson от pip .
python3 -m venv .venv
source .venv/bin/activate
pip install mesonПозже вы можете отключить виртуальную среду и удалить ее.
deactivate
rm -rf .venvpacman -S meson systemd git dbus libinihdnf install meson systemd-devel pkg-config git dbus-develGentoo имеет ebuild, которая создает стабильный релиз из источников. Это также привлечет все зависимости, чтобы вы могли работать над исходным кодом.
emerge --ask games-util/gamemodeВы также можете установить, используя последние источники от GIT:
ACCEPT_KEYWORDS= " ** " emerge --ask ~ games-util/gamemode-9999Затем клонируйте, создайте и установите версию GameMode по телефону 1.8.2:
git clone https://github.com/FeralInteractive/gamemode.git
cd gamemode
git checkout 1.8.2 # omit to build the master branch
./bootstrap.shЧтобы протестировать установленные GameMode и будет работать правильно:
gamemoded -tУдалить:
systemctl --user stop gamemoded.service
ninja uninstall -C builddir Запросы на вывод должны соответствовать стилю кодирования, найденному в .clang-format .
clang-format -i $(find . -name '*.[ch]' -not -path "*subprojects/*")
Дикий интерактивный
См. Раздел участников для расширенного списка участников.
Copyright © 2017-2024 Dies Interactive
GameMode доступен в соответствии с условиями лицензии BSD 3-CRAUSE (пересмотрено)
Библиотека «INIH» распределяется по новой лицензии BSD