NTSYNC в Linux: что меняется для игр и Wine
NTSYNC в Linux - драйвер ядра 6.14+, который выполняет синхронизацию Windows-программ прямо в ядре, и с Wine 11 и Proton 11 он работает автоматически. Главный эффект для игр - ровнее время кадра и меньше странных зависаний, а не чудесный рост FPS. Ниже как проверить, что NTSYNC у вас включён, и как его отключить для сравнения.

Содержание
Что такое NTSYNC и почему о нём заговорили
NTSYNC - драйвер ядра Linux, который реализует примитивы синхронизации Windows NT: мьютексы, семафоры и события. Создаёт устройство /dev/ntsync, через которое Wine выполняет операции ожидания прямо в ядре, без похода к отдельному процессу wineserver.
Путь к пользователям занял почти два года:
- драйвер написала Элизабет Фигура из CodeWeavers, в основное ядро он вошёл в версии 6.14 (март 2025);
- Wine начал использовать его в ветке разработки 10.16 осенью 2025 года;
- Wine 11.0 в январе 2026 года стал первым стабильным выпуском с поддержкой NTSYNC;
- Proton 11.0-1 вышел в стабильной версии 7 июля 2026 года на базе Wine 11, и NTSYNC в нём используется автоматически, если ядро его поддерживает.
Для обычных Linux-программ драйвер ничего не меняет. Он нужен только Windows-приложениям и играм, запущенным через Wine, Proton и оболочки вокруг них вроде Lutris, Bottles и Heroic.
Wineserver, esync, fsync: откуда взялась проблема
Windows-игры постоянно синхронизируют потоки: рендер ждёт физику, звук ждёт загрузчик ресурсов. В Windows это дешёвые системные вызовы. В Linux точного аналога не было, и классический Wine отправлял каждый такой запрос процессу wineserver. Тысячи переходов в секунду превращались в микрозадержки и рваный фреймтайм в многопоточных играх.
Обходные пути существовали давно, но жили вне основного Wine:
| Механизм | Как работает | Что нужно | Статус в 2026 году |
|---|---|---|---|
| wineserver | все ожидания через отдельный процесс | ничего | запасной вариант в любом Wine |
| esync | объекты на основе eventfd | высокий лимит открытых файлов | в Proton 11 объявлен устаревшим |
| fsync | фьютексы, ожидание нескольких объектов | ядро с futex_waitv (5.16 и новее) | остаётся в Proton как запасной путь |
| NTSYNC | семантика NT целиком в драйвере ядра | ядро 6.14+ и модуль ntsync | в основном Wine 11 и Proton 11 |
Esync и fsync были приближениями: они ускоряли типовые случаи, но некоторые редкие сценарии Windows API вели себя иначе, и отдельные игры из-за этого падали или зависали. NTSYNC повторяет поведение Windows точно, поэтому его приняли в основной Wine, а не держат отдельным патчем.
Что реально изменится в играх
Громкие цифры с приростом в сотни процентов, которые разошлись по новостям, получены в сравнении с обычным Wine без esync и fsync, причём на нескольких старых, сильно многопоточных играх. Пользователи Steam давно запускали игры с fsync, поэтому для них разница скромнее. Честный прогноз такой:
- Стабильнее фреймтайм. Меньше коротких подвисаний там, где игра активно жонглирует потоками.
- Меньше странных багов. Игры, которые падали или зависали из-за неточной эмуляции синхронизации, получают шанс заработать.
- Обычный Wine догоняет Proton. Пользователям Lutris, Bottles и системного Wine больше не нужны сторонние сборки с fsync.
- Средний FPS в современных играх на свежем железе меняется мало: узкое место там обычно видеокарта и драйвер.
Независимых массовых тестов на десятках игр мы не нашли, поэтому проверяйте свои: включите оверлей MangoHud и сравните график времени кадра с NTSYNC и без него.
Что нужно, чтобы NTSYNC заработал
Три условия: ядро с драйвером, загруженный модуль с доступом для пользователя и Wine или Proton, собранный с поддержкой NTSYNC.
С ядром в 2026 году проблем почти нет: Ubuntu 26.04 LTS, Fedora 44, свежий Arch и SteamOS давно на ядрах новее 6.14. Debian 13 вышел с ядром 6.12, где драйвер был ещё неполным и выключенным, так что там понадобится ядро из backports. Проверка:
uname -r
modinfo ntsync # есть ли модуль в вашем ядре
ls -l /dev/ntsync # есть ли устройствоЕсли модуль есть, а устройства нет, его просто не загрузили. Загрузите вручную и добавьте в автозагрузку:
sudo modprobe ntsync
echo ntsync | sudo tee /etc/modules-load.d/ntsync.confВ Fedora 44 принято изменение NTSYNC-Contained: модуль подгружается через файл /usr/lib/modules-load.d/ntsync.conf, который приезжает вместе с игровыми пакетами. Свои настройки при этом кладите в /etc/modules-load.d/, а не правьте системный файл.
Права на /dev/ntsync должны позволять открыть устройство обычному пользователю. В свежих ядрах это решено по умолчанию, но на старых сборках встречались узкие права, и тогда Wine молча откатывается на медленный путь.
Если пользуетесь сторонними ядрами вроде linux-zen, XanMod или CachyOS, проверьте modinfo ntsync после каждого крупного обновления. В таких ядрах конфигурация меняется чаще, а модуль иногда собирается встроенным, и тогда modprobe ничего не покажет, хотя устройство есть.
Как честно сравнить игру с NTSYNC и без него
Субъективное ощущение плавности обманчиво, поэтому меряйте. Удобнее всего MangoHud: он рисует поверх игры FPS и график времени кадра.
# Debian, Ubuntu, Linux Mint
sudo apt install mangohud
# Fedora 44
sudo dnf install mangohud
# Arch Linux
sudo pacman -S mangohudДальше два прогона одной и той же сцены. В параметры запуска игры в Steam по очереди впишите:
mangohud %command%
PROTON_NO_NTSYNC=1 mangohud %command%Смотрите не на средний FPS, а на форму графика: пики на нём и есть те самые микрофризы. Для записи в файл в MangoHud есть журнал, по умолчанию он включается сочетанием Shift+F2 (левый Shift), а потом файлы можно сравнить в любом просмотрщике CSV. Делайте по два-три прогона: первый запуск после обновления Proton часто медленнее из-за компиляции шейдеров, и это не имеет отношения к синхронизации.
Тестируйте игры, где проблема была заметна: старые проекты на собственных движках, стратегии с большим количеством юнитов, открытые миры с подгрузкой. В лёгкой инди-игре разницы вы скорее всего не увидите вообще.
Steam и Proton 11: включать ничего не нужно
В Proton 11 NTSYNC используется автоматически, если доступен /dev/ntsync. Отдельного ключа для включения нет, а в документации Proton появилась обратная переменная для отключения. Выберите версию в свойствах игры: Совместимость - Принудительно использовать Proton 11.0 или Proton Experimental.
Чтобы сравнить поведение с NTSYNC и без него, впишите в параметры запуска игры:
PROTON_NO_NTSYNC=1 %command%Проверить, что игра действительно открыла устройство, можно во время её работы:
sudo lsof /dev/ntsyncЕсли в списке есть процессы игры, NTSYNC работает. Пустой вывод означает, что Proton перешёл на fsync: проверьте модуль и права. На Steam Deck поддержка появилась ещё в SteamOS 3.7.20, там всё настроено из коробки. Остальные тонкости Proton, от выбора версии до логов, собраны в статье Proton и Steam в Linux, а про особенности консоли Valve - в материале о Steam Deck.
Системный Wine, Lutris и Bottles
С Wine 11 из репозитория NTSYNC тоже включается сам, но при одном условии: пакет должен быть собран с заголовками ядра, где есть ntsync.h. В дистрибутивах со старыми заголовками сборщики иногда выпускают Wine без этой поддержки, и тогда драйвер не задействуется, даже если он загружен. Для Debian такой запрос обсуждался в баг-трекере WineHQ.
# Debian, Ubuntu (из репозитория дистрибутива или WineHQ)
sudo apt install wine
# Fedora 44
sudo dnf install wine
# Arch Linux
sudo pacman -S wine
wine --version # нужна 11.0 или новееВ Lutris и Bottles выбирайте раннер на базе Wine 11 или свежий GE-Proton. Сборки GE-Proton поддерживали NTSYNC ещё до стабильного Proton 11, но в старых версиях его надо было включать вручную переменной, поэтому обновите раннер, а не тащите старые настройки. Общие советы по Wine, префиксам и winetricks есть в статье про запуск Windows-программ.
Если после обновления игра стала работать хуже
Такое бывает: новый механизм выявляет баги в самих играх или античитах, которые раньше маскировались. Порядок действий:
- Запустите игру с
PROTON_NO_NTSYNC=1 %command%. Если всё вернулось, проблема в связке игры и NTSYNC. - Откатитесь на Proton 10 в свойствах игры, это не трогает сохранения.
- Включите журнал:
PROTON_LOG=1 %command%создаст файлsteam-ИДЕНТИФИКАТОР.logв домашнем каталоге. Его прикладывают к отчёту в трекере Proton на GitHub. - Проверьте драйвер видеокарты: подвисания после обновления часто связаны с ним, а не с синхронизацией. Помогает статья про драйвер NVIDIA.
Техническое описание интерфейса драйвера для тех, кто хочет понять, что именно делает ядро, есть в документации ядра Linux.
Частые вопросы
Нужно ли включать NTSYNC в Steam вручную?
Нет. Proton 11 использует его сам, если есть /dev/ntsync. Для отключения есть переменная PROTON_NO_NTSYNC=1.
Какое ядро нужно для NTSYNC?
Linux 6.14 или новее с модулем ntsync. Проверка: modinfo ntsync и ls -l /dev/ntsync.
Даст ли NTSYNC прирост FPS?
В некоторых многопоточных играх да, особенно по сравнению с Wine без fsync. Чаще заметна стабильность времени кадра, а средний FPS меняется мало.
Работает ли NTSYNC с обычным Wine?
Да, начиная с Wine 11, если пакет собран с поддержкой ntsync и модуль загружен.
Есть ли NTSYNC на Steam Deck?
Да, поддержка появилась в SteamOS 3.7.20.
Документация и источники
- NT synchronization primitive driver, The Linux Kernel documentation, 2026
- Proton README: runtime config options (PROTON_NO_NTSYNC), Valve, ValveSoftware/Proton, 2026
- Changes/NTSYNC-Contained, Fedora Project, 2026
- Wine 11.0 release notes, WineHQ, 2026
Читайте также
Команды проверены на актуальных версиях дистрибутивов на момент обновления. Перед изменением системных настроек сделайте резервную копию.