wxrd vorgestellt, ein kompositorischer Server auf Basis von Wayland für virtuelle Realitätssysteme

Das Unternehmen Collabora hat den Composite-Server wxrd vorgestellt, der auf dem Wayland-Protokoll basiert und zur Erstellung einer Desktop-Umgebung auf Basis von xrdesktop-Komponenten in dreidimensionalen virtuellen Umgebungen gedacht ist. Als Grundlage dient die Bibliothek wlroots, die von den Entwicklern der Benutzeroberfläche Sway weiterentwickelt wird, sowie der Composite-Server wxrc, der für den Einsatz in virtuellen Realitätssystemen ausgelegt ist. Der Code des Projekts ist in C geschrieben und wird unter der MIT-Lizenz verbreitet.

Im Gegensatz zur ursprünglich in xrdesktop vorgeschlagenen Lösung bietet wxrd einen spezialisierten Composite-Server Server für virtuelle Realität, anstelle einer Anpassung bestehender Fenster-Manager und Desktop-Oberflächen für VR-Systeme (das Projekt xrdesktop bietet separate Patches für kwin und GNOME Shell, die an jede neue Version dieser Komponenten angepasst werden müssen). Die Verwendung von wxrd ermöglicht es, nicht nur den Inhalt eines bestehenden 2D-Desktops zu spiegeln, der gleichzeitig auf einem herkömmlichen Monitor angezeigt wird, sondern auch Fenster separat zu verarbeiten, die speziell für den dreidimensionalen Desktop gestartet wurden (d.h. den Zugriff aus dem VR-Headset auf den auf dem aktuellen System verwendeten Desktop nicht zu gewähren, sondern eine separate Umgebung für das VR-Headset zu schaffen).

Video abspielen

Im Gegensatz zu ähnlichen Projekten wie Simula VR, Stardust, Motorcar und Safespaces wurde der Composite-Server wxrd mit dem Ziel entwickelt, die Anzahl der Abhängigkeiten minimal zu halten und den Ressourcenverbrauch niedrig zu halten. Wxrd erlaubt es auch, nicht nur mit Anwendungen auf Basis des Wayland-Protokolls zu arbeiten, sondern ermöglicht es mithilfe des DDX-Servers xwayland, X11-Anwendungen zu starten.

Da die Erweiterung des Wayland-Protokolls für virtuelle Tastaturen sich in der Entwicklung befindet, wird die Dateneingabe in wxrd über ein System zur Emulation der Tastatureingabe umgesetzt, das alle Unicode-Zeichen, einschließlich Emojis, von der in xrdesktop bereitgestellten virtuellen Tastatur überträgt. Für den Betrieb von wxrd wird eine Grafikkarte benötigt, die das Grafik-API Vulkan und die Erweiterung VK_EXT_image_drm_format_modifier unterstützt, die in Mesa ab Version 21.1 unterstützt wird (eingeschlossen in Ubuntu 21.04). Um das API Vulkan für das Rendering zu verwenden, ist die Erweiterung VK_EXT_physical_device_drmm erforderlich, die in Mesa 21.2 verfügbar ist (Ubuntu 21.10).

Vorteile der Verwendung eines separaten Composite-Servers Server Für Virtual-Reality-Systeme verwenden wir anstelle der Integration mit 2D-Fenstermanagern, die für die Anzeige eines traditionellen Desktops eingesetzt werden:

  • Beim Starten in einer Sitzung auf Basis von Wayland oder X11 öffnet die Bibliothek wlroots ein Fenster, in dem die Erfassung von Tastatureingaben und Mausklicks leicht organisiert und diese Eingaben an ein bestimmtes Fenster in der virtuellen Realität weitergeleitet werden können. Zukünftig wird geplant, diese Möglichkeit nicht nur für Eingaben über VR-Controller, sondern auch über herkömmliche Tastaturen und Mäuse zu nutzen.
  • Fenster sind nicht durch die Rahmen eines 2D-Desktops begrenzt und können beliebige Größen haben, die nur durch die maximal unterstützte Hardware für Texturen beschränkt sind.
  • Das Rendering von Fenstern in wxrd erfolgt mit der für 3D-Headsets (HMD) nativen Bildwiederholfrequenz, während beim Spiegeln von Fenstern aus herkömmlichen Fenstermanagern die für die Aktualisierung von Informationen auf einem stationären Monitor verwendete Frequenz genutzt wird.
  • Die Schriftarten können unter Berücksichtigung der Pixeldichte des 3D-Headsets gerendert werden, ohne an die Pixeldichte des stationären Monitors gebunden zu sein.
  • Die Verwendung von wxrd ist auf Systemen möglich, die nur ein 3D-Headset und keinen herkömmlichen Monitor haben.

Nachteile eines separaten Kompositionsservers für VR:

  • In der VR-Umgebung werden nur Anwendungen angezeigt, die speziell für einen separaten Kompositionsserver gestartet wurden, ohne die Möglichkeit, Fenster, die bereits auf dem traditionellen Desktop geöffnet sind, in die VR-Umgebung zu verschieben oder zu spiegeln (d. h. um mit Anwendungen, die auf dem normalen Bildschirm geöffnet sind, weiterzuarbeiten, müssen diese in einer separaten Umgebung für das 3D-Headset neu gestartet werden).
  • Die Unterstützung von Wayland kann in der Implementierung der Vulkan-API eingeschränkt sein. Beispielsweise können gbm und wlroots nicht mit proprietären NVIDIA-Treibern verwendet werden, da die Unterstützung der Erweiterung VK_EXT_drm_format_modifier fehlt.

Video abspielen


Quelle: opennet.ru
60GB SSD 8Gb DDR4