Valve опубликовала Proton 11.0-1 Beta 3 — небольшое обновление, затрагивающее только сборку под ARM64. Изменение единственное: эмулятор FEX обновлен до версии FEX-2605 от . На x86-64 поведение Proton 11 Beta 3 совпадает со второй бета-версией, остальные компоненты прежние. Параллельно с этим Proton Experimental также получил изменения, попавшие в Beta 3.
Что меняет FEX-2605 для ARM64-сборки Proton
FEX — это эмулятор x86 и x86-64 пользовательского режима для ARM64 устройств Linux. В связке с Proton и Lepton он образует часть программной базы для будущей гарнитуры Steam Frame, в которой используется SteamOS на ARM-процессоре Qualcomm Snapdragon. Без FEX на ARM-устройстве из библиотеки Steam запустилось бы только небольшое количество игр с нативными ARM-сборками.
В FEX-2605 разработчики продолжили оптимизацию инструкций x87 в пути с пониженной точностью: на этот раз быстрее стали ATAN, FYL2X, FSCALE и F2XM1 — типичный прирост на этих инструкциях составляет от 2 до 4 раз, в зависимости от ввода. Это в первую очередь сказывается на 32-битных играх.
Из исправлений ошибок отдельно отмечены:
- CMPXCHG8B/16B неправильно выставляли флаги процессора — редкая, но потенциально провоцирующая активное ожидание в памяти ошибка.
- SSE-инструкции MAXPS и MAXPD некорректно разрешали ничью на входах Inf/NaN; аналогичные проблемы с проверкой денормализованных результатов исправлены и в части x87-операций.
- Сохранение и восстановление 16-битных сегментных регистров не работало корректно.
- Запрос DCZID_EL0 в режиме ARM64EC добавлен, чтобы корректно работал CLZERO — ранее приложения, безусловно использующие эту инструкцию, падали.
Падение при подключённом контроллере в режиме ARM64EC
В FEX устранили падение в режиме ARM64EC при подключённом контроллере. Корень проблемы лежал в механизме suspend doorbell: когда Wine ставит эмулируемый поток на паузу, он выставляет флаг, который FEX отслеживает для безопасной остановки. В одной из веток обработки скрывалось состояние гонки между потоками и сигналами, проявлявшееся только при очень частых запросах на приостановку. Контроллер DualSense через SDL генерировал такие запросы почти непрерывно — и тем самым превратился в живой регрессионный тест.
Подготовка к Snapdragon X2 Elite
Основная масса нового кода в FEX-2605 связана с платформой Qualcomm Snapdragon X2 Elite, которая впервые попала в руки команды. Полноценной поддержки Linux у этих устройств пока нет — Qualcomm дорабатывает её в ядре, и шанс получить рабочий GPU появится не раньше Linux 7.1 или 7.2. По итогам первых тестов в FEX внесены следующие правки и наблюдения:
- Аппаратный генератор случайных чисел RNDRRS по-прежнему сломан, как и на Snapdragon X1 Elite, поэтому функция RNG отключена.
- Счётчик циклов работает на частоте 19,2 МГц — платформа остаётся в рамках ARMv9.0-a, тогда как ARMv9.1-a требует счётчик на 1 ГГц.
- Платформа поддерживает SVE2 со 128-битными регистрами, SME и виртуализацию KVM.
- Реализовано новое поведение атомарных операций.
Последний пункт важен для эмуляции модели памяти x86. В предыдущих ARM-чипах атомарная операция, пересекающая 16-байтовую границу, вызывала SIGBUS, и FEX перехватывал его, чтобы эмулировать split-lock программно — это и медленно, и небезопасно из-за риска разрыва значения. В Snapdragon X2 Elite SIGBUS на RMW-операциях возникает только при пересечении 64-байтной границы кеш-линии, что куда ближе к поведению x86. Инструкции acquire load и release store при этом по-прежнему вызывают SIGBUS на 16-байтной границе — именно этот случай чаще всего создаёт просадки в играх с ручными memcpy и memset.
Как протестировать Proton 11.0 Beta
Proton распространяется только через клиент Steam – отдельного установщика нет. Сам клиент доступен для большинства дистрибутивов Linux и предустановлен в SteamOS на Steam Deck. Proton 11.0 Beta появляется в выпадающем списке инструментов совместимости автоматически – вручную скачивать его не нужно, клиент загрузит сборку при первом запуске игры через эту версию.
Установить клиент Steam
Клиент Steam можно скачать как DEB-пакет для Linux. Альтернатива — установка через пакетный менеджер дистрибутива:
- Arch Linux, CachyOS, Manjaro:
sudo pacman -S steam(требуется включённый репозиторий multilib); - Ubuntu, Linux Mint, Pop!_OS:
sudo apt install steam-installerили установка пакета .deb с официального сайта; - Fedora:
sudo dnf install steam(требуется репозиторий RPM Fusion non-free); - openSUSE:
sudo zypper install steam; - любой дистрибутив с Flatpak:
flatpak install flathub com.valvesoftware.Steam; - Steam Deck и SteamOS — клиент уже установлен, отдельные действия не требуются.
Назначить Proton 11.0 Beta для игры
- Открыть «Библиотеку» и выбрать нужную Windows-игру;
- нажать на значок шестерёнки справа и перейти в «Свойства»;
- открыть вкладку «Совместимость»;
- включить параметр «Принудительно использовать выбранный инструмент совместимости Steam Play»;
- в выпадающем списке выбрать «Proton 11.0 (Beta)»;
- закрыть окно — изменения сохраняются автоматически.

При следующем запуске игра стартует уже через Proton 11.0 Beta 1 – клиент скачает сборку перед первым запуском. Если возникнут проблемы, в том же меню можно вернуть предыдущую версию — Proton 10.0-4 или Proton Experimental. Сборка помечена как бета-версия, поэтому для основного игрового сеанса Valve рекомендует оставаться на стабильной ветке Proton 10. Отчёты об ошибках принимаются в репозитории проекта на GitHub.

Назначить Proton 11.0 Beta для всех игр по умолчанию
- Запустить клиент Steam и войти в учётную запись;
- открыть меню «Steam» в левом верхнем углу и выбрать пункт «Настройки» (в SteamOS настройка выполняется в режиме рабочего стола);
- перейти в раздел «Совместимость»;
- Выбрать из выпадающего меню стандартный инструмент совместимости;
- при запросе перезапустить клиент.
