GameMode — это демон и библиотека для операционных систем семейства Linux, предназначенные для автоматизации применения системных оптимизаций при запуске игр и других ресурсоёмких приложений. Проект реализует механизм, при котором при старте приложения с пометкой «игра» временно изменяются параметры ядра, планировщика задач и подсистемы энергопотребления для уменьшения задержек, улучшения отзывчивости и повышения производительности. После завершения приложения все параметры возвращаются в прежнее состояние.
Изначально разработанный как легковесное решение для оптимизации игрового опыта на настольных системах, GameMode предоставляет API и утилиту командной строки, а также интеграцию с лаунчерами и скриптами запуска. Он работает через демон, принимающий запросы от клиента или приложения, и применяет набор заранее определённых или настраиваемых правил — например, переключение политики управления питанием процессора, изменение приоритетов процессов, установка масок CPU или отключение троттлинга графического процессора. Проект развивается сообществом и ориентирован на совместимость с разными дистрибутивами и средами выполнения.
- Демон и клиент: фоновый демон принимает запросы от клиентских приложений и управляет последовательностью изменений системы.
- API и интеграция: предоставляет программный интерфейс для вызова оптимизаций из лаунчеров, сценариев и отдельных приложений.
- Управление питанием CPU: переключение governor и установка частотных ограничений для увеличения производительности или уменьшения энергопотребления в момент запуска игры.
- Приоритеты процессов: временное повышение приоритета игрового процесса и его потоков, уменьшение приоритета фоновых задач.
- Настройка планировщика: конфигурация параметров планировщика задач для снижения задержек и улучшения распределения CPU между задачами.
- GPU-оптимизации: применение общих настроек, влияющих на поведение графического подсистемы, когда это поддерживается платформой.
- Сброс изменений: автоматическое восстановление исходных системных настроек после завершения сессии.
- Конфигурируемость: поддержка пользовательских конфигураций и профилей для разных игр и сценариев использования.
- Логирование и безопасность: ведение журналов применения настроек и минимальные привилегии, необходимые для выполнения операций.
- Кросс-дистрибутивность: ориентирован на работу в различных дистрибутивах Linux и может учитывать особенности конкретных систем.