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 .venv
pacman -S meson systemd git dbus libinih
dnf install meson systemd-devel pkg-config git dbus-devel
Gentoo имеет 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