Linux-гейминг получил NTSYNC: прирост производительности до 700%
Многие Windows-игры интенсивно используют многопоточность и полагаются на встроенные в ядро NT механизмы синхронизации потоков — мьютексы, семафоры, события.
Linux такими инструментами не обладал, и слой совместимости Wine был вынужден эмулировать их через обращения к пользовательскому процессу wineserver, что создавало ощутимые задержки, подёргивания и вылеты в требовательных тайтлах.
☝🏻Решением стал драйвер NTSYNC, который переносит эмуляцию этих примитивов напрямую в ядро Linux.
Технология прошла долгий путь разработки, но теперь вся цепочка наконец собралась воедино: ядро Linux поддерживает драйвер, Wine 11 умеет его использовать, а свежая бета Proton 11 от Valve впервые привезла NTSYNC в официальную экосистему Steam. 🕹
В тестах разработчиков прирост производительности в многопоточных играх составляет от 50% до 150% в типичных сценариях, а в отдельных случаях достигает нескольких сотен процентов — например, Dirt 3 показала рост почти в 7 раз, а Resident Evil 2 ускорилась втрое.
Call of Duty: Black Ops I, ранее попросту неиграбельная на Linux, перешла в полностью рабочее состояние. 📈
Стоит учитывать, что наибольший эффект NTSYNC даёт именно в CPU-зависимых тайтлах с интенсивной многопоточностью — там, где синхронизация была узким местом.
Пользователи Proton с fsync увидят более скромную разницу в чистом FPS, однако NTSYNC обеспечивает лучшую совместимость, более ровный frame pacing и — что принципиально — является частью основного ядра Linux, а не сторонним патчем.
Помимо синхронизации, Proton 11 расширил список играбельных тайтлов.
NTSYNC доступен на Fedora, Ubuntu, Arch Linux, Debian и других дистрибутивах с актуальным ядром.🐧