Загрузка данных


РУКОВОДСТВО ОПЕРАТОРА

1. НАЗНАЧЕНИЕ ПРОГРАММЫ

SDK Monado OpenXR Runtime представляет собой открытую реализацию спецификации OpenXR API для операционной системы Linux. Программа предназначена для обеспечения взаимодействия между приложениями, использующими OpenXR, и оборудованием виртуальной, дополненной и смешанной реальности (VR/AR/MR). Monado выполняет функции драйвера для VR-шлемов и контроллеров, обеспечивая приложениям единый интерфейс доступа к данным о положении, ориентации и вводе с устройств, а также управляет композицией кадров для отображения в гарнитуре. Программа не предназначена для непосредственного использования конечным пользователем, а служит промежуточным слоем для разработки и выполнения OpenXR-совместимых приложений.

2. УСЛОВИЯ ВЫПОЛНЕНИЯ ПРОГРАММЫ

2.1. Требования к аппаратному обеспечению:

Для работы программы необходима видеокарта с поддержкой драйвера Vulkan и расширений VK_KHR_external_memory_fd и VK_KHR_external_semaphore_fd. Рекомендуется использование драйверов radv, intel anv или проприетарного драйвера NVIDIA. Для приложений, использующих OpenGL, требуется поддержка расширения GL_EXT_memory_object_fd в драйвере OpenGL. Проверена работа с драйверами radeonsi, intel i965, iris и проприетарным драйвером NVIDIA. Для работы требуется подключенное VR/AR устройство (шлем и контроллеры) или возможность использования симулированного драйвера для разработки без оборудования.

2.2. Требования к программному обеспечению:

Для работы программы необходима операционная система Linux (поддерживаются также Android и Windows в стадии разработки). Требуется установленный OpenXR Loader (пакет libopenxr-loader1 в системах Debian/Ubuntu). Также требуется установленный пакет xr-hardware для предоставления прав доступа к оборудованию без привилегий root. Для работы с симулированным драйвером дополнительных требований к оборудованию не предъявляется.

3. ВЫПОЛНЕНИЕ ПРОГРАММЫ

3.1. Запуск и остановка сервиса Monado

Monado может работать в двух режимах: как отдельный сервис или как библиотека, загружаемая приложением.

Запуск сервиса Monado вручную выполняется командой:
monado-service

Для остановки сервиса необходимо нажать клавишу Enter в терминале, где был запущен сервис.

При использовании systemd для автоматического запуска используется команда:
systemctl --user enable monado.socket

После включения сокета сервис будет автоматически запускаться при обращении OpenXR-приложения.

Остановка сервиса systemd выполняется командой:
systemctl --user stop monado.service

3.2. Настройка использования Monado как активного OpenXR рантайма

OpenXR Loader определяет, какой рантайм использовать, в следующем порядке: сначала проверяется переменная окружения XR_RUNTIME_JSON, затем системный файл /etc/xdg/openxr/1/active_runtime.json, затем пользовательский файл ~/.config/openxr/1/active_runtime.json.

Для установки Monado в качестве системного рантайма выполните:
sudo mkdir -p /etc/xdg/openxr/1/
sudo ln -s /usr/share/openxr/1/openxr_monado.json /etc/xdg/openxr/1/active_runtime.json

Для установки Monado как пользовательского рантайма выполните:
mkdir -p ~/.config/openxr/1
ln -s /usr/share/openxr/1/openxr_monado.json ~/.config/openxr/1/active_runtime.json

Для временной установки рантайма используйте переменную окружения при запуске приложения:
XR_RUNTIME_JSON=/usr/share/openxr/1/openxr_monado.json ./ваше_приложение

3.3. Запуск OpenXR-приложений

После настройки рантайма OpenXR-приложения могут быть запущены обычным способом. При использовании симулированного драйвера после начала VR-сессии открывается окно с симулированным выводом XR-изображения.

3.4. Вспомогательные инструменты

Программа также включает следующие утилиты командной строки:

monado-cli probe - проверяет, какие поддерживаемые устройства обнаружены системой.

monado-cli test - предоставляет подробную информацию о найденных устройствах.

monado-gui - графический инструмент для калибровки камер при использовании систем позиционного отслеживания.

4. СООБЩЕНИЯ ОПЕРАТОРУ

Программа использует систему кодов результатов xrt_result для информирования о состоянии выполнения операций. Коды со значением 0 и положительные значения означают успешное выполнение, отрицательные значения - ошибки.

Код XRT_SUCCESS (значение 0) означает, что операция успешно завершена. Оператору следует продолжить работу.

Код XRT_TIMEOUT (значение 2) означает, что операция с таймаутом не завершилась вовремя. Оператору следует проверить состояние устройства, повторить операцию или увеличить время ожидания.

Код XRT_SPACE_BOUNDS_UNAVAILABLE означает, что границы пространства в данный момент неизвестны. Оператору следует дождаться получения данных об окружении или выполнить калибровку.

Код XRT_OPERATION_CANCELLED означает, что асинхронная операция была отменена. Оператору следует повторить операцию при необходимости.

Код XRT_ERROR_VULKAN (значение -3) означает неуказанную ошибку, связанную с Vulkan. Оператору следует проверить установку и совместимость драйвера Vulkan, обновить драйверы.

Код XRT_ERROR_OPENGL (значение -4) означает неуказанную ошибку, связанную с OpenGL. Оператору следует проверить установку и совместимость драйвера OpenGL, обновить драйверы.

Код XRT_ERROR_FAILED_TO_SUBMIT_VULKAN_COMMANDS (значение -5) означает ошибку при отправке команд Vulkan. Оператору следует проверить состояние видеокарты и драйвера, перезапустить систему.

Код XRT_ERROR_SWAPCHAIN_FLAG_VALID_BUT_UNSUPPORTED (значение -6) означает, что запрошенный флаг swapchain не поддерживается основным композитором. Оператору следует изменить параметры создания swapchain в приложении, использовать поддерживаемые флаги.

Код XRT_ERROR_NO_IMAGE_AVAILABLE (значение -2) означает, что нет доступных изображений для захвата или освобождения в очереди. Оператору следует проверить состояние буферов, освободить ресурсы, перезапустить сессию.

Код XRT_ERROR_IPC (значение -1) означает проблему с IPC транспортом, неверные команды клиента или ответы сервера. Оператору следует перезапустить monado-service, проверить права доступа к сокету /run/user/*/monado_comp_ipc.

Код XRT_ERROR_IPC_SESSION_ALREADY_CREATED означает, что сессия уже создана на данном IPC-подключении. Оператору следует проверить, что приложение не пытается создать несколько сессий.

Код XRT_ERROR_IPC_COMPOSITOR_NOT_CREATED означает, что композитор не создан на данном IPC-подключении. Оператору следует убедиться в корректном создании композитора перед вызовом функций.

Код XRT_ERROR_ALLOCATION означает, что не удалось выделить буферы изображений. Оператору следует проверить доступную память системы и видеокарты, закрыть другие приложения.

Код XRT_ERROR_DEVICE_CREATION_FAILED означает, что не удалось создать устройство XR. Оператору следует проверить подключение оборудования, установку драйверов устройства.

Код XRT_ERROR_INPUT_UNSUPPORTED означает, что входной параметр не поддерживается драйвером. Оператору следует использовать поддерживаемые типы ввода, обратиться к документации устройства.

Код XRT_ERROR_OUTPUT_UNSUPPORTED означает, что выходной параметр не поддерживается драйвером. Оператору следует использовать поддерживаемые типы вывода.

Код XRT_ERROR_UNSUPPORTED_SPACE_TYPE означает, что тип пространства не поддерживается для данной операции. Оператору следует использовать поддерживаемый тип пространства координат.

Код XRT_ERROR_PROBING_FAILED означает ошибку при обнаружении оборудования. Оператору следует проверить подключение устройств, права доступа, использовать monado-cli probe для диагностики.

Код XRT_ERROR_IPC_SERVICE_ALREADY_RUNNING означает, что сервис IPC уже запущен. Оператору следует остановить существующий экземпляр monado-service и запустить новый.

Код XRT_ERROR_FILE_ACCESS_ERROR означает ошибку доступа к файлу. Оператору следует проверить права доступа к файлам конфигурации и ресурсам.

Код XR_ERROR_RUNTIME_UNAVAILABLE означает, что загрузчик не может найти или загрузить рантайм. Оператору следует проверить установку OpenXR Loader и правильность active_runtime.json.

Код XR_ERROR_FORM_FACTOR_UNAVAILABLE означает, что устройство поддерживается, но в данный момент недоступно (не подключено или выключено). Оператору следует подключить устройство, проверить его питание.

Код XR_ERROR_GRAPHICS_DEVICE_INVALID означает, что графическое устройство находится в недопустимом состоянии. Оператору следует перезагрузить графический драйвер, перезапустить систему.

При нештатном завершении monado-service (Ctrl+C или сбой) остается файл сокета /run/user/*/monado_comp_ipc. При следующем запуске сервиса этот файл удаляется автоматически. Если ошибка сохраняется, рекомендуется проверить системный журнал для получения дополнительной информации об ошибке.