За последние десятилетия сообщество Linux-геймеров добилось колоссального прогресса в области совместимости. Благодаря развитию проектов Proton и DXVK, количество неработающих игр сократилось до минимума, а разрыв в производительности между Linux и Windows практически исчез. Однако по мере совершенствования экосистемы на первый план выходят менее заметные, но важные для повседневного использования задачи, такие как корректная работа игровых оверлеев в сессиях Wayland.

Почему оверлей Steam критически важен для гейминга
Хотя многие пользователи привыкли воспринимать оверлей Steam как второстепенный инструмент для создания скриншотов, общения с друзьями или просмотра веб-страниц, его функциональность гораздо шире. Как отмечает разработчик дистрибутива Nobara и проекта GE-Proton, известный под псевдонимом GloriousEggroll, оверлей напрямую связан со Steam Input. Система переназначения клавиш контроллера требует наличия активного оверлея для назначения профилей. Если оверлей не запускается, пользователь теряет возможность гибкой настройки управления, что создает серьезные трудности в игровом процессе.
Проблемы зависят от множества факторов: типа установки Steam (Flatpak, нативные пакеты), конкретной игры и используемого игрового манипулятора. Масштаб этих сложностей наглядно демонстрирует репозиторий steam-for-linux от Valve, где пользователи активно обсуждают ошибки и пытаются найти способы их решения.
Технические корни конфликта с Wayland
Корни проблемы уходят глубоко в архитектурные различия между оконными системами. Оверлей Steam исторически полагается на GLX для OpenGL и X WSI для Vulkan, которые неразрывно связаны с графическим сервером X11. Приложения, работающие в Wayland, используют стандарт EGL, который не поддерживает взаимодействие с оверлеем в том виде, в котором оно реализовано в Steam.
Аналогичная ситуация сложилась и с Vulkan: механизм оверлея обернут в расширение для X11, тогда как для Wayland требуются иные подходы. Учитывая, что соответствующий тикет в репозитории Valve был открыт еще в 2021 году, можно констатировать, что эта техническая преграда существует уже более пяти лет.
Временные решения и их недостатки
На текущий момент существуют способы обхода проблемы, однако каждый из них имеет свои издержки. Например, запуск нативных игр с параметром SDL_VIDEODRIVER=x11 возвращает игру в среду X11, что лишает пользователя преимуществ Wayland. Игры через Proton можно запускать внутри gamescope, но этот метод требует отдельной настройки композитора.
Для тех, кому нужен только счетчик кадров, спасением становится MangoHud. Это решение работает как неявный слой Vulkan, отрисовывая данные непосредственно внутри рендера игры, минуя взаимодействие с композитором. Однако подобный подход не является универсальным для всех типов оверлеев. Попытки устранить проблему часто приводят к потере поддержки HDR, нестабильному фреймпейсингу (времени кадра) или проблемам с дробным масштабированием интерфейса.

Перспективы исправления ситуации
Несмотря на многолетнюю историю открытых тикетов, работа в этом направлении ведется. Важным шагом стало появление поддержки оверлея Steam в Wine-Wayland в рамках сборки GE-Proton11-6. Разработчики перенесли Vulkan-перехват в отдельный слой vkroots, извлекли специфичный для оверлея код из winewayland.drv и переработали мост для ввода и фокуса, что позволяет корректно работать с нативными Vulkan и OpenGL.
На текущем этапе это решение ограничено сообществом, использующим кастомные сборки Proton. Тем не менее, по мере того как Wayland становится основным протоколом отображения в популярных дистрибутивах Linux, ожидается, что официальные исправления от Valve будут внедряться в основные ветки проекта постепенно.
Почему оверлей — это больше, чем просто интерфейс
Важно понимать, что Steam Overlay — не просто «красивая обертка» для чата или браузера. Это фундамент, на котором держится Steam Input. Как подчеркивает GloriousEggroll в примечаниях к своим патчам, именно через оверлей осуществляется привязка профилей управления к конкретным устройствам. Когда оверлей перестает функционировать под wine-wayland, цепочка взаимодействия разрывается: система просто не «видит» способ назначить выбранную конфигурацию контроллера, что делает невозможным использование кастомных раскладок, столь привычных для пользователей Steam Deck и настольного клиента.

Архитектурный тупик: GLX, EGL и наследие X11
Конфликт, с которым столкнулись пользователи Wayland, имеет под собой глубокие технические основания. Исторически Steam Overlay был «заточен» под взаимодействие с X11: он активно использует GLX для передачи кадров в OpenGL-приложениях. Однако Wayland-приложения принципиально отказываются от использования GLX в пользу EGL, который спроектирован как более современная и независимая альтернатива. Поскольку оверлей Steam жестко привязан к «перехвату» GLX-вызовов, он становится «невидимым» для любой игры, работающей через EGL.
Аналогичная проблема преследует и API Vulkan. Steam-слой Vulkan принудительно оборачивает расширения, предназначенные для X11, но не имеет аналогичной поддержки для протоколов Wayland. Это создает ситуацию, где даже при использовании самых современных графических API приложение не может корректно «отрисовать» интерфейс поверх игрового окна, так как среда Wayland просто не предоставляет необходимых для этого инструментов, ожидаемых старым механизмом Steam.
Цена компромиссов при обходе ограничений
Попытки решить проблему самостоятельно нередко приводят к тому, что пользователь вынужден жертвовать ключевыми преимуществами современной графической среды. Использование gamescope, хотя и возвращает заветный оверлей, фактически создает вложенный композитор — дополнительный слой программного обеспечения между игрой и дисплеем, требующий ручной настройки для каждой отдельной конфигурации. В свою очередь, принудительное переключение на X11 через переменную окружения SDL_VIDEODRIVER=x11 автоматически лишает игрока доступа к современным функциям Wayland, таким как продвинутое дробное масштабирование или корректная работа с несколькими мониторами с разной частотой обновления.
Даже использование MangoHud, которое является «золотым стандартом» для мониторинга FPS благодаря своей реализации в виде неявного слоя Vulkan (рисующего данные непосредственно в процессе отрисовки кадра), не решает глобальную задачу. Это лишь частичное решение, работающее для специфических задач вывода данных, но не восстанавливающее функциональность Steam Input или полноценного интерфейса оверлея. Любая попытка «сломать» текущую архитектуру ради работы старого оверлея ставит под удар стабильность фреймпейсинга и поддержку HDR, которые на Wayland работают нативно и значительно стабильнее, чем на устаревающем X11.






