Подано wxrd, композитний сервер на базі Wayland для систем віртуальної реальності

Компанія Collabora представила композитний сервер wxrd, реалізований на базі протоколу Wayland та призначений для формування робочого столу на базі компонентів xrdesktop усередині тривимірних оточень віртуальної реальності. Як основа використовується бібліотека wlroots, що розвивається розробниками користувача оточення Sway, і композитний сервер wxrc, розрахований на використання в системах віртуальної реальності. Код проекту написаний мовою Сі та поширюється під ліцензією MIT.

На відміну від запропонованого в xrdesktop рішення wxrd пропонує спеціалізований композитний сервер для оточень віртуальної реальності, замість адаптації для VR-систем існуючих віконних менеджерів і оболонок робочого столу (проектом xrdesktop надаються окремі патчі до kwin і GNOME Shell, які вимагають адаптації випуску цих компонентів). Застосування wxrd дозволяє не просто віддзеркалювати вміст існуючого двовимірного робочого столу, що в цей же час показується на звичайному моніторі, а окремо обробляти вікна, спеціально запущені для тривимірного робочого столу (тобто не надати доступ із VR-шолома до робочого робочого системи, що використовується). столу, а сформувати окреме оточення для VR-шолома).

На відміну від схожих проектів Simula VR, Stardust, Motorcar та Safespaces, композитний сервер wxrd створений з огляду на використання мінімальної кількості залежностей та невелике споживання ресурсів. Wxrd також дозволяє працювати не тільки з програмами на базі протоколу Wayland і дає можливість за допомогою DDX-сервера xwayland запускати X11-додатки.

Так як розширення протоколу Wayland для віртуальних клавіатур знаходиться на стадії розробки, введення даних wxrd реалізований через систему емуляції клавіатурного введення, що виконує передачу всіх unicode-символів, включаючи emoji, з віртуальної клавіатури, що надається в xrdesktop. Для роботи wxrd потрібна відеокарта з підтримкою графічного API Vulkan та розширення VK_EXT_image_drm_format_modifier, що підтримується в Mesa починаючи з випуску 21.1 (входить до складу Ubuntu 21.04). Для використання API Vulkan для рендерингу потрібне розширення VK_EXT_physical_device_drmm, яке з'явилося у Mesa 21.2 (Ubuntu 21.10).

Плюси використання окремого композитного сервера для систем віртуальної реальності замість інтеграції з двовимірними віконними менеджерами, які використовуються для відображення традиційного робочого столу:

  • При запуску в сеансі на базі Wayland або X11 бібліотека wlroots відкриває вікно, в якому можна легко організувати захоплення клавіатурного введення та подій миші та перенаправити дане введення в певне вікно в оточенні віртуальної реальності. У майбутньому цю можливість планують використовуватиме організації введення як через VR-контролер, а й з допомогою звичайних клавіатури і миші.
  • Вікна не обмежені рамками двовимірного робочого столу і можуть мати довільний розмір, обмежений лише розміром текстур, що максимально підтримується обладнанням.
  • Відображення вікон у wxrd виконується з рідною для 3D-шоломів (HMD) частотою оновлення картинки, у той час як при дзеркаліруванні вікон із звичайних віконних менеджерів використовується частота, що використовується для оновлення інформації на стаціонарному моніторі.
  • Малювання шрифтів може виконуватися з урахуванням щільності пікселів 3D-шолома, без прив'язки до щільності пікселів стаціонарного монітора.
  • Можливе використання wxrd на системах, в яких є лише 3D-шолом та відсутній звичайний монітор.

Мінуси окремого композитного сервера для VR:

  • У VR-оточенні показуються лише програми, спеціально запущені для окремого композитного сервера, без можливості перенести або віддзеркалити у VR-оточення вікна, вже відкриті на традиційному робочому столі (тобто для продовження роботи з програмами, відкритими на звичайному екрані, доведеться їх перезапускати в окремому оточенні для 3D-шолома).
  • Підтримка Wayland може бути обмежена у реалізації API Vulkan. Наприклад, gbm і wlroots не можуть використовуватися з пропрієтарними драйверами NVIDIA через відсутність підтримки розширення VK_EXT_drm_format_modifier.



Джерело: opennet.ru

Додати коментар або відгук