14 сентября 2026 года Valve выпустила обновление Half-Life: Alyx. В списке
изменений были: оптимизации под Steam Frame, отслеживаемая глазами
foveated-отрисовка, нативная сборка ARM64/aarch64 и режим "depth reprojection"
для работы при пониженной частоте полноценного рендера.
Для обычного патча шестилетней игры набор довольно необычный, но если смотреть
на развитие Linux VR за последние девять лет, он почти идеально показывает, к
чему в итоге пришла Valve.
Half-Life: Alyx теперь способна запускаться непосредственно на Steam Frame -
без компьютера. Frame построен на Snapdragon 8 Gen 3, использует архитектуру
ARM64 и работает под SteamOS на базе Arch Linux.
Linux много лет оставался болезненной платформой для PCVR: Direct Mode,
Wayland, DRM leasing, видеодрайверы, композитор, SteamVR и сама гарнитура
должны были одновременно договориться друг с другом.
Решать весь набор проблем одновременно Valve не стала: в Steam Frame
значительную часть потенциальных точек отказа удалось просто убрать из системы.
Документация Valve: совместимость Steam Frame
2017: SteamVR приходит на Linux
Публичная история SteamVR на Linux началась 21 февраля 2017 года.
Valve открыла Linux-сборку в beta-ветке и предупредила: это development release
для разработчиков, поддержка оборудования ограничена, а для работы могут
потребоваться предварительные версии графических драйверов.
Анонс SteamVR for Linux от Valve
Предупреждение оказалось вполне заслуженным.
SteamVR уже тогда опирался на Vulkan. Владельцам NVIDIA требовался
development-драйвер 375.27.10, а на AMD Valve рассчитывала на свежий RADV.
В раннем тесте Phoronix запуск HTC Vive на Linux превратился в подбор рабочего
сочетания Ubuntu, Steam Runtime и Vulkan-драйвера. После нескольких попыток
автор пришёл к выводу, что по зрелости порт тогда находился примерно на стадии
alpha, несмотря на формальный статус beta.
Phoronix: итог раннего теста SteamVR Linux Beta - скорее alpha, чем beta
Багтрекер тех лет выглядит соответственно: segfault при старте SteamVR на Arch
Linux, ошибки композитора, проблемы IPC и множество аппаратно-зависимых сбоев.
Официальный репозиторий SteamVR for Linux
Прошло девять лет, а README официального репозитория всё ещё называет
Linux-версию "development release" и предупреждает об ограниченной поддержке оборудования.
Эта формулировка явно пережила не одну эпоху развития SteamVR и уже не
описывает современное состояние буквально. Но она хорошо передаёт главную
проблему: сделать одну Linux-игру относительно просто. Сделать универсальный
Linux VR-стек для огромного количества разных компьютеров - совсем другая задача.
Нативной Linux-версии Alyx оказалось недостаточно
В 2020 году Half-Life: Alyx получила официальный Linux-порт на Vulkan. Valve
тогда рекомендовала для Linux видеокарты AMD с Mesa RADV.
Valve: Workshop Update 2020 - нативная Linux-версия Alyx, Vulkan и
рекомендация Mesa RADV
Казалось бы, задача решена: есть нативная игра, есть Vulkan, есть SteamVR. Но VR работает не так.
Обычной игре достаточно сформировать кадр и вывести его на экран.
VR-система должна одновременно:
подготовить изображение отдельно для каждого глаза;
учитывать последние данные о положении головы;
укладываться в очень жёсткий временной бюджет;
передавать изображение непосредственно на дисплей гарнитуры;
синхронизировать игру, композитор, GPU и HMD;
корректировать изображение между полноценными кадрами, если игра не успевает.
На Linux в эту цепочку добавляются ещё несколько уровней:
Vulkan;
драйвер AMD, NVIDIA или Intel;
X11 либо Wayland;
оконный композитор;
Direct Mode;
DRM leasing;
драйвер гарнитуры;
способ физического подключения HMD.
Каждая дополнительная прослойка - ещё одно место, где что-нибудь может сломаться.
Показательный пример - DRM leasing.
При определённых проблемах SteamVR может завершиться ошибкой:
Failed to lease display
или:
VRInitError_Compositor_CannotDRMLeaseDisplay
DRM lease позволяет VR-композитору получить прямой контроль над дисплеем
гарнитуры, не заставляя рабочий стол обращаться с ней как с обычным монитором.
Если Wayland-композитор, драйвер или KMS-стек не договорились между собой,
SteamVR просто не получает нужный дисплей.
Поддержка IVRDriverDirectModeComponent на Linux появилась в SteamVR 2.5 лишь в
2024 году. В том же выпуске Valve продолжала исправлять Linux-специфичные
проблемы с выводом изображения, SteamVR Home и совместимостью с дистрибутивами.
Valve: SteamVR 2.5 - Direct Mode drivers на Linux и сопутствующие исправления
Отсюда следует важное различие: нативный порт игры решает только часть задач
Linux VR. Alyx работала на Linux с 2020 года, но между её движком и линзами
оставалась длинная цепочка из компонентов, любой из которых мог испортить результат.
Desktop Linux VR в 2026 году остаётся капризным
За девять лет ситуация стала значительно лучше, но свежие изменения SteamVR
показывают, что работа далеко не закончена.
В SteamVR 2.16 Valve переводила синхронизацию GPU на Linux на "timeline
semaphores", улучшала работу с Gamescope, исправляла сбои после падения VR-игр
и отдельно работала над NVIDIA.
Для VRLink пришлось исправлять выбор правильного GPU на системах с открытыми
модулями ядра NVIDIA. Появлялись и отдельные обходные решения для
высокобитрейтной передачи изображения.
SteamVR 2.17 продолжил исправлять работу проводных гарнитур, стабильность
Linux, логирование и Steam Link.
Valve: SteamVR 2.16 - timeline semaphores, Gamescope, VRLink и NVIDIA на Linux
Valve: SteamVR 2.17 - Linux и Steam Link fixes
Эти изменения показывают, что Valve продолжает работать именно с
низкоуровневыми частями Linux VR-стека.
И как бы хорошо не выглядел список изменений, количество проблем всё ещё
большое. В багтрекере показывается проблема desktop Linux VR: результат до сих
пор зависит от сочетания GPU, драйвера, ядра, Wayland-композитора, гарнитуры и
версии SteamVR.
Совсем недавно, например, появился отдельный отчёт о постоянном ghosting в
правом глазу Quest 3S при работе через Steam Link VR; есть проблемы AMDGPU,
Vulkan device creation, compositor и DRM leasing.
GitHub: Steam Link VR - persistent right-eye ghosting на Quest 3S
GitHub: vrcompositor - AMDGPU GPU page faults на RDNA2/RADV
Именно с этим фоном лучше всего смотреть на Steam Frame и понимать, что...
Steam Frame делает VR-среду предсказуемой
Здесь Valve заранее известны практически все ключевые компоненты системы:
какой установлен процессор;
какой используется GPU;
сколько доступно памяти;
какие стоят дисплеи;
какие камеры отвечают за отслеживание;
какие используются контроллеры;
как устроено отслеживание взгляда;
какая версия SteamOS установлена;
какой Vulkan-драйвер используется;
какой SteamVR будет работать поверх всего этого.
А при автономном запуске пропадает ещё и внешний Linux ПК.
Из цепочки исчезают Direct Mode для внешнего HMD, DRM leasing через
Wayland-композитор и необходимость учитывать десятки сочетаний видеокарт,
драйверов и гарнитур.
Steam Frame сам является компьютером, VR-системой и устройством вывода.
Производитель начал контролировать железо, образ системы, драйверы, клиент
Steam и обновления одновременно.
Но Steam Frame работает на ARM
Но переход к контролируемой платформе поставил перед Valve другую задачу -
совместимость ARM64 с огромной библиотекой x86-игр Steam.
Steam Frame использует Snapdragon 8 Gen 3 - это ARM64.
Основная библиотека Steam исторически заточена под x86 и x86-64, а большинство
PC-игр рассчитано прежде всего на Windows. Заставить всю индустрию выпустить
сборки под Linux, так ещё и ARM64 было бы очень сложно.
И в Valve выбрали пойти по пути совместимости снова, как делали это ранее с Proton.
x86-код: FEX
Если программа собрана под x86 или x86-64, в дело вступает FEX.
FEX динамически переводит x86-инструкции в ARM64, графические вызовы OpenGL и
Vulkan перенаправляет в нативные библиотеки хост-системы, а переведённый код
кэшируется для уменьшения последующих накладных расходов.
Android: Lepton
Для Android-приложений Valve использует Lepton - контейнерный слой
совместимости, рассчитанный в том числе на перенос существующих Android ARM64 VR-игр.
Для разработчиков, у которых уже имеется мобильная версия VR-проекта, такой
путь может оказаться значительно проще, чем перенос Windows-версии.
FEX оказался недостаточно быстрым для Alyx
Для большинства игр подхода, который описан в документации Valve типичный путь
запуска Windows игры может оказаться достаточно:
Windows x86-64 -> Proton -> FEX -> Linux Arm64 -> Vulkan
Valve: совместимость приложений со Steam Frame
Но, как выяснилось, не для Half-Life: Alyx.
ComputerBase получила специальную ARM64-версию HL: Alyx и описала историю её появления.
Существующую x86-версию можно было попытаться запускать через FEX, но
производительности оказалось недостаточно для того результата, которого хотела
Valve. Компания пошла более дорогим путём: Valve перенесла Linux/Vulkan-версию
с x86-64 непосредственно на ARM64.
ComputerBase: ARM64-версия Half-Life: Alyx на Steam Frame
В официальном обновлении игры появились:
ARM64/aarch64;
оптимизации рендера под Steam Frame;
foveated rendering;
depth reprojection;
дополнительные улучшения производительности;
исправления Linux-версии.
Valve: Half-Life: Alyx Updated for Steam Frame - ARM64, foveated rendering и
depth reprojection
Получается, что для Steam Frame Alyx стала настоящим нативным
Linux/ARM64-приложением, а не PC-игрой через несколько слоёв совместимости.
Однако, ARM64-порт оказался только частью проделанной работы.
Ради одной Alyx пришлось улучшать саму платформу
По словам Valve, значительная часть работы над автономной версией Alyx пришлась
на Vulkan-драйвер и SteamVR - работа затронула гораздо больше, чем код самой игры.
Они работали над:
графическим драйвером;
SteamVR;
VR-композитором;
передачей данных для reprojection;
производительностью всей графической цепочки.
Причём часть этих улучшений не привязана исключительно к Alyx и может
использоваться другими приложениями Steam Frame.
Road to VR: комментарий Valve о более чем годе работы над Vulkan-драйверами
и SteamVR
The Verge: Valve о переносе Alyx на ARM и общих оптимизациях SteamVR/Vulkan
То есть у Valve получилось кроме приспосабления под ограничения платформы,
одновременно приспосабливать платформу под игру.
На Linux это особенно удобно, так как значительные части графического стека
открыты: разработчики могут исследовать нужный участок драйвера, профилировать
его и при необходимости непосредственно менять код, вместо того чтобы ждать
новой версии полностью закрытого runtime от производителя GPU.
Как Snapdragon вообще справляется с Half-Life: Alyx
Оригинальная PC-версия Alyx в минимальных требованиях указывала GTX 1060/RX 580
с 6 ГБ VRAM и 12 ГБ оперативной памяти.
Steam: официальные системные требования Half-Life: Alyx
Steam Frame запускает ту же игру на мобильной SoC. Одного перехода на ARM64 для
этого явно недостаточно. Valve пришлось уменьшить объём работы, который
выполняется при формировании каждого кадра.
Foveated rendering: не тратить GPU там, куда человек не смотрит
Steam Frame отслеживает направление взгляда.
SteamVR предоставляет для этого стандартные OpenXR-механизмы, включая:
XR_EXT_eye_gaze_interaction
и расширения foveation:
XR_FB_foveation
XR_FB_foveation_configuration
XR_FB_foveation_vulkan
XR_META_foveation_eye_tracked
Valve: OpenXR и собственные движки на Steam Frame
Смысл foveated rendering довольно прост - вместо одинаково качественного
изображения по всей площади:
█████████████████
█████████████████
█████████████████
█████████████████
основной вычислительный бюджет можно сосредоточить вокруг точки взгляда:
░░░░░▒▒▒░░░░░░░
░░▒▒█████▒▒░░░░
░▒█████████▒░░░
░░▒▒█████▒▒░░░░
░░░░░▒▒▒░░░░░░░
Периферическая часть изображения формируется дешевле. Глаз всё равно
значительно хуже различает там мелкие детали, поэтому часть качества можно
обменять на производительность.
Цена такой экономии - заметные в некоторых ситуациях переходы качества. Для
мобильного GPU этот компромисс всё равно даёт большой выигрыш в производительности.
Второй крупный приём - reprojection
ComputerBase при тестировании автономной Alyx получила штатный режим работы:
36 полноценных кадров в секунду при частоте дисплея 72 Гц.
То есть движок не создаёт 72 совершенно новых кадра каждую секунду. Тогда Valve
решила добавить в Alyx depth reprojection - некий аналог генирации кадров.
Игра может передать композитору информацию о глубине сцены. Steam Frame также
умеет использовать данные движения. Зная глубину изображения и новое положение
головы, VR-композитор может перестроить предыдущий кадр под изменившийся ракурс.
Именно поэтому 36 FPS здесь нельзя напрямую сравнивать с 36 FPS обычной игры на
мониторе. Дисплей продолжает обновляться 72 раза в секунду. Часть этих
обновлений создаётся на основе уже существующего кадра и свежего положения головы.
По наблюдениям ComputerBase, результат ощущается значительно лучше, чем можно
предположить по одной цифре 36 FPS.
Valve даже предоставляет разработчикам Steam Frame параметр
preferHalfFramerate, позволяющий сознательно использовать половинную частоту
рендера вместе с reprojection.
Valve: Steam Frame VR Preferences - preferHalfFramerate
Физику всё равно не обмануть
Valve приходится идти на уступки, ради нормальной производительности. Они
значительно уменьшили объём необходимых вычислений:
ARM64-порт убирает FEX из критического пути Alyx.
Foveated rendering снижает стоимость периферического изображения.
Depth reprojection уменьшает необходимое количество полноценных кадров.
SteamVR восстанавливает промежуточное движение.
Vulkan-драйвер оптимизируется под конкретный GPU.
SteamOS и композитор полностью контролируются Valve.
Игра работает на заранее известной аппаратной конфигурации.
Потому автономная Alyx может выглядеть хуже, чем версия, отрисованная мощным настольным GPU.
Так же, ComputerBase заметила изменение качества на периферии, вызванное
foveated rendering. Когда пользователь переводит взгляд, область максимального
качества перемещается вместе с ним. В некоторых ситуациях переход детализации и
отдельные артефакты можно заметить боковым зрением.
И всё это остаётся настоящим Linux
Valve не превратила SteamOS на Frame в полностью закрытую консольную оболочку.
Документация предусматривает доступ к Linux desktop и инструменты удалённой разработки.
Steam Frame Debugging
В результате получается необычная платформа, родная среда которой выглядит примерно так:
Linux -> Arm64 -> Vulkan ->OpenXR / SteamVR
Но поверх неё Valve пытается поддерживать сразу несколько экосистем:
Linux ARM64;
Android ARM64 через Lepton;
Windows ARM64;
Windows x86/x86-64 через Proton и FEX;
Linux x86 через FEX.
Здесь Valve повторяет стратегию Steam Deck: вместо массового переноса индустрии
на Linux компания строит слои совместимости для уже существующего ПО.
Что от Steam Frame получит обычный Linux VR
Последствия Frame могут оказаться важнее самой гарнитуры, так как большая часть
работы команды Valve выполнялась над Vulkan-драйвером и SteamVR.
Steam Frame заставил Valve вкладывать серьёзные инженерные ресурсы именно
в Vulkan, OpenXR, SteamVR и Linux-графический стек.
И часть этой работы уже выходит за пределы одной гарнитуры и одной игры.
Современные версии SteamVR получают Linux-изменения в тех же областях:
синхронизация GPU;
Gamescope;
выбор видеокарты;
NVIDIA;
передача изображения;
Steam Link;
проводные гарнитуры;
VR-compositor.
Передача VR с Linux-ПК
В SteamVR 2.17 есть Linux-исправления Steam Link и связанных компонентов.
При этом публикации ComputerBase на момент запуска противоречат друг другу. В
основном обзоре Steam Frame указано, что в протестированной релизной
конфигурации передача VR работала только с Windows-PC, тогда как Linux (и
SteamOS), Steam Machine и Steam Deck в роли источника ещё не поддерживались.
Отдельный материал ComputerBase про Half-Life: Alyx, опубликованный в тот же
день, наоборот утверждает, что игру можно передавать на Frame как с Windows-,
так и с Linux/SteamOS-PC. Поэтому по этим публикациям однозначно подтвердить
поддержку Linux-host на старте нельзя.
ComputerBase: основной обзор Steam Frame - на старте streaming только с Windows-PC
ComputerBase: отдельный материал Alyx - заявлен streaming с Windows и Linux/SteamOS
Почему Half-Life: Alyx идёт в комплекте со Steam Frame
Изначально сочетание выглядело абсурдно. Half-Life: Alyx - одна из самых
технологически сложных PCVR-игр. Steam Frame - автономная гарнитура на
мобильном ARM-процессоре под Linux. Причём Linux VR много лет считался одной из
самых сырых частей Linux-гейминга.
The Verge: Half-Life: Alyx входит в комплект Steam Frame
В 2020 году игра показывала на что способна Valve в PCVR при наличии
полноценного игрового компьютера.
В 2026 году та же игра показывает совсем другой набор технологий:
Linux Arm64;
Vulkan;
OpenXR;
SteamVR;
отслеживание взгляда;
foveated rendering;
depth reprojection;
данные движения;
оптимизированный VR-compositor;
единое аппаратное и программное окружение.
История Steam Frame становится интереснее, если посмотреть на технологии,
которые потребовались для запуска Alyx.
Путь к этому результату
В 2017 году SteamVR for Linux вышел как экспериментальная development-сборка с
ограниченной поддержкой оборудования и предварительными Vulkan-драйверами.
В 2020 году Alyx получила нативную Linux/Vulkan-версию, но качество VR
по-прежнему зависело от длинной цепочки внешних компонентов.
В 2024 году Valve всё ещё добавляла важные части Direct Mode для Linux.
В 2026 году компания продолжает исправлять DRM leasing, NVIDIA, Gamescope,
синхронизацию GPU и Steam Link и одновременно выпускает автономную
ARM64/Linux-гарнитуру, способную непосредственно на своём железе запускать
Half-Life: Alyx.
Вот это и есть наиболее точное описание того, как Valve "победила" Linux VR.
Источники
Valve - совместимость приложений со Steam Frame, Proton, FEX и Lepton
Valve - Steam Frame: Custom Engines, OpenXR, eye tracking и foveation
Valve - Steam Frame Debugging
Valve - Steam Frame VR Preferences и preferHalfFramerate
Valve - SteamVR for Linux Beta, 2017
Valve - SteamVR for Linux: README, требования и статус Linux-порта
Valve - SteamVR 2.5: Direct Mode drivers на Linux
Valve - SteamVR 2.16: Linux, Gamescope, timeline semaphores и VRLink
Valve - SteamVR 2.17: Linux и Steam Link fixes
Valve - актуальные проблемы SteamVR for Linux
GitHub - DRM lease failing to start на RTX 5060 Ti
GitHub - Steam Link VR: persistent right-eye ghosting на Quest 3S
GitHub - vrcompositor: AMDGPU GPU page faults на RDNA2/RADV
Valve - Half-Life: Alyx Workshop Update 2020: Linux/Vulkan и Mesa RADV
Valve - Half-Life: Alyx Updated for Steam Frame: ARM64, foveated
rendering и depth reprojection
Steam - системные требования Half-Life: Alyx
Phoronix - итог раннего теста SteamVR Linux Beta: скорее alpha, чем beta
Road to VR - комментарий Valve о более чем годе работы над
Vulkan-драйверами и SteamVR
The Verge - ARM64-порт Alyx и общие оптимизации SteamVR/Vulkan
The Verge -цена Steam Frame и Half-Life: Alyx в комплекте
ComputerBase - ARM64-порт Alyx, FEX, foveated rendering и режим 36 FPS /
72 Гц
ComputerBase - основной обзор Steam Frame и launch-ограничения streaming
|