Einführung von wxrd, einem Wayland-basierten Verbundserver für Virtual-Reality-Systeme

Das Unternehmen Collabora stellte einen Verbundserver wxrd vor, der auf Basis des Wayland-Protokolls implementiert wurde und für die Erstellung eines Desktops auf Basis von xrdesktop-Komponenten in dreidimensionalen Virtual-Reality-Umgebungen gedacht ist. Die Basis bilden die wlroots-Bibliothek, die von den Entwicklern der Sway-Benutzerumgebung entwickelt wurde, und der wxrc-Composite-Server, der für den Einsatz in Virtual-Reality-Systemen konzipiert ist. Der Projektcode ist in C geschrieben und wird unter der MIT-Lizenz vertrieben.

Anders als die ursprünglich in xrdesktop vorgeschlagene Lösung bietet wxrd einen spezialisierten Verbundserver für Virtual-Reality-Umgebungen, anstatt bestehende Fenstermanager und Desktop-Shells für VR-Systeme anzupassen (das xrdesktop-Projekt stellt separate Patches für kwin und GNOME Shell bereit, die für jede neue angepasst werden müssen). Freigabe dieser Komponenten). Durch die Verwendung von wxrd können Sie nicht nur den Inhalt eines vorhandenen zweidimensionalen Desktops spiegeln, der gleichzeitig auf einem normalen Monitor angezeigt wird, sondern auch Fenster, die speziell für einen dreidimensionalen Desktop gestartet wurden, separat verarbeiten (d. h. keinen Zugriff ermöglichen). des VR-Helms auf den Desktop, der auf der aktuellen Systemtabelle verwendet wird, aber um eine separate Umgebung für den VR-Helm zu bilden).

Im Gegensatz zu ähnlichen Projekten wie Simula VR, Stardust, Motorcar und Safespaces wurde der wxrd-Composite-Server mit dem Ziel erstellt, eine minimale Anzahl von Abhängigkeiten und einen geringen Ressourcenverbrauch zu verwenden. Wxrd ermöglicht Ihnen außerdem nicht nur die Arbeit mit Anwendungen, die auf dem Wayland-Protokoll basieren, sondern ermöglicht auch den Start von X11-Anwendungen über den xwayland DDX-Server.

Da sich die Wayland-Protokollerweiterung für virtuelle Tastaturen in der Entwicklung befindet, wird die Eingabe in wxrd über ein Tastatureingabe-Emulationssystem implementiert, das alle Unicode-Zeichen, einschließlich Emoji, von der in xrdesktop bereitgestellten virtuellen Tastatur überträgt. Um wxrd auszuführen, benötigen Sie eine Grafikkarte, die die Vulkan-Grafik-API und die Erweiterung VK_EXT_image_drm_format_modifier unterstützt, die in Mesa seit Version 21.1 unterstützt wird (in Ubuntu 21.04 enthalten). Die Verwendung der Vulkan-API zum Rendern erfordert die Erweiterung VK_EXT_physical_device_drmm, die in Mesa 21.2 (Ubuntu 21.10) eingeführt wurde.

Vorteile der Verwendung eines separaten Verbundservers für Virtual-Reality-Systeme anstelle der Integration mit den XNUMXD-Fenstermanagern, die zur Anzeige eines herkömmlichen Desktops verwendet werden:

  • Wenn die wlroots-Bibliothek in einer Wayland- oder In Zukunft wollen sie diese Funktion nutzen, um Eingaben nicht nur über einen VR-Controller, sondern auch über eine normale Tastatur und Maus zu organisieren.
  • Fenster sind nicht durch den XNUMXD-Desktop-Rahmen begrenzt und können eine beliebige Größe haben, begrenzt nur durch die maximale von der Hardware unterstützte Texturgröße.
  • Das Rendern von Fenstern in wxrd erfolgt mit der nativen Bildwiederholfrequenz des 3D-Head-Mounted-Displays (HMD), während beim Spiegeln von Fenstern aus herkömmlichen Fenstermanagern die Frequenz verwendet wird, die zum Aktualisieren von Informationen auf einem stationären Monitor verwendet wird.
  • Schriftarten können unter Berücksichtigung der Pixeldichte eines 3D-Helms gerendert werden, ohne Bezug auf die Pixeldichte eines stationären Monitors.
  • Es ist möglich, wxrd auf Systemen zu verwenden, die nur über ein 3D-Headset und keinen regulären Monitor verfügen.

Nachteile eines separaten Verbundservers für VR:

  • In der VR-Umgebung werden nur Anwendungen angezeigt, die speziell für einen separaten Verbundserver gestartet wurden, ohne dass die Möglichkeit besteht, Fenster, die bereits auf einem herkömmlichen Desktop geöffnet sind, in die VR-Umgebung zu übertragen oder zu spiegeln (d. h. um mit auf einem normalen Bildschirm geöffneten Anwendungen weiterzuarbeiten). muss in einer separaten Umgebung für den 3D-Helm neu gestartet werden).
  • Die Wayland-Unterstützung kann in Vulkan-API-Implementierungen eingeschränkt sein. Beispielsweise können gbm und wlroots nicht mit proprietären NVIDIA-Treibern verwendet werden, da die Erweiterung VK_EXT_drm_format_modifier nicht unterstützt wird.



Source: opennet.ru

Kommentar hinzufügen