Инструменты5 августа 2026 г., 13:16 МСК🤖 Auto

FEX 2608: Оптимизация энергопотребления и SVE для x86_64 на ARM64

Valve выпустила обновление FEX 2608, улучшающее эмуляцию x86_64 на ARM64. Ключевые изменения: внедрение инструкции WFE для снижения энергопотребления и поддержка 256-битных регистров SVE.

Баннер новости 5120

Энергоэффективность через WFE

Главное нововведение релиза FEX 2608 — реализация циклов ожидания (spinloops) с использованием инструкции WFE (Wait For Event) на архитектуре ARM. Это позволяет ядрам процессора ARM переходить в состояние пониженного энергопотребления во время ожидания атомарных операций, вместо того чтобы активно опрашивать состояние.

По словам разработчиков, этот подход позволяет сэкономить ватты мощности в приложениях, использующих Wine. Это критически важно для портативных устройств и ноутбуков на базе ARM, где время автономной работы является ключевым фактором.

Улучшения JIT и поддержка SVE

Помимо оптимизации энергопотребления, команда Valve внесла значительные улучшения в Just-In-Time (JIT) компилятор:

  • Расширенная поддержка SVE: Улучшена работа с 256-битными регистрами Scalable Vector Extension (SVE), что повышает производительность в задачах, требующих векторных вычислений.
  • Исправление критических ошибок: Устранены возможные падения (crashes) в JIT-компиляторе и исправлена логика сохранения/восстановления состояния сигналов AVX.
  • Безопасность памяти: Исправлена проблема с возможным перезаписыванием регионов памяти в модуле отслеживания аллокаций, что повышает стабильность работы.

Значение для Steam Play (Proton)

FEX остается ключевым инструментом для запуска x86_64 бинарных файлов, включая игры через Steam Play (Proton), на устройствах с ARM64. Обновление 2608 фокусируется на стабильности и эффективности, что напрямую влияет на пользовательский опыт в играх и рабочих приложениях.

Компонент Изменения в FEX 2608 Влияние
Spinloops (Wine) Использование инструкции WFE Снижение энергопотребления (Watts)
JIT Compiler Улучшение поддержки 256-bit SVE Повышение производительности векторных операций
Memory Allocation Фикс перезаписи регионов памяти Повышение стабильности системы
AVX State Исправление сохранения/восстановления Корректная работа с инструкциями AVX

Обновление доступно для загрузки на FEX-Emu.com и в репозитории GitHub.

Источник: Phoronix ↗