Ошибка проявляется в Windows-приложениях виртуальной реальности, которые сначала выводят изображение мира, а затем добавляют перед пользователем две или более плоские панели. По описанию автора отчёта, при запуске через Proton в Linux такие кадры не доходят до SteamVR.
Сообщение появилось в трекере Proton 17 октября 2026 года. Позже Valve перенесла его текст в issue 291, посвящённую Grand Theft Auto: Vice City (12110). Эта неофициальная ветка совместимости была открыта 23 августа 2018 года. Исходный отчёт закрыли через 25 минут после создания, а отдельную повторную заявку — через 26 минут; автору сообщили, что дублировать обращения не следует.
Проблема возникает из-за размера OpenXR-слоёв
OpenXR передаёт кадр как список слоёв. Изображение стереоскопического мира обычно оформляется как projection layer, а меню, экран на запястье или другая плоская панель — как quad layer. На 64-разрядной Windows структура projection layer занимает 48 байт, тогда как quad layer — 112 байт.
Согласно техническому разбору в отчёте, код перевода Proton выбирает размер только по первому элементу списка и использует его для остальных слоёв. Если первым идёт слой мира, а за ним следуют две панели, данные второй панели записываются в область, рассчитанную для первой. В результате SteamVR отклоняет кадр с ошибкой XR_ERROR_POSE_INVALID.
Одна панель может пережить переполнение, поскольку запись попадает в неиспользуемую область буфера. Поэтому простые приложения иногда работают нормально, тогда как два дисплея на запястье уже способны вызвать сбой: оба являются quad layers.
Тест воспроизводит ошибку 1 347 раз
Автор отчёта проверил гипотезу с помощью 270-строчного тестового приложения. При порядке «мир, две панели» оно отправило 1 347 кадров и получило 1 347 ошибок. Если перед слоем мира добавить небольшую панель, все кадры отрисовывались корректно.
Источник проблемы обнаружили в reVC — VR-моде для Grand Theft Auto: Vice City, где две панели на запястьях создают описанную комбинацию слоёв. Однако отдельная заявка подчёркивала, что ошибка касается не только этого мода, а потенциально любого Windows-приложения OpenXR.
Valve пока не подтвердила исправление
Описанный механизм остаётся анализом автора отчёта. В качестве основания он приводит ссылки на код и конкретный коммит Proton Experimental 11.0, а не стабильную ветку Proton. Valve не воспроизводила проблему публично, не помечала её как подтверждённую ошибку и не публиковала исправление.
Предложенное изменение заключается в том, чтобы определять размер каждого слоя по его собственному типу внутри цикла либо выделять все элементы с размером самой крупной структуры. По отчёту, аналогичный шаблон присутствует в 32-разрядном пути и в генераторе, который формирует оба варианта кода.
Тестирование проводилось на Proton Experimental 11.0-20261014 и SteamVR 2.17.10 в CachyOS. В качестве PC VR-гарнитуры использовалась PlayStation VR2, а видеокартой была NVIDIA GeForce RTX 3090.
Пока исправления нет, автор предлагает обходной путь: поставить одну панель первой в списке слоёв, до слоя виртуального мира. Именно такой порядок устранил сбой в его тесте.
Источник: MIXED Reality News










Обсуждение
Добавлять комментарии могут только зарегистрированные пользователи. Регистрация или вход.