Профиль: Аноним (вход | регистрация) неRU opennet.me  
OpenNET

[ новости /+++ | форум | теги |    ]

История реализации поддержки Linux VR-стека в играх Valve
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
  •  
    15.09.2026 , Автор: mmnths
    Ключи: valve, vr, game, gamescope, vulkan / Лицензия: CC-BY
    Раздел:    Корень / Пользователю / X Window

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    XSQUARE
    Inferno Solutions
    Hosting by Hoster.ru
    Хоcтинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2026 by Maxim Chirkov
    Добавить новость, Поддержать