Recently Collabora unveiled the wxrd composite server, which is implemented based on the Wayland protocol and designed to form a desktop based on xrdesktop components within XNUMXD virtual reality environments.
As a basis, the wlroots library, developed by the developers of the Sway user environment, and the wxrc composite server, designed for use in virtual reality systems, are used.
Unlike the solution originally proposed in xrdesktop, wxrd offers a specialized composite server for virtual reality environments, instead of adapting window and skin managers existing desktops for virtual reality systems (the xrdesktop project provides separate patches for kwin and GNOME Shell, which require adaptation for each new release of these components).
Using wxrd allows you not only to mirror the content of an existing two-dimensional desktop, at the same time as it is displayed on a normal monitor, but also to handle windows launched especially for a three-dimensional desktop separately (that is, not to provide access from a VR helmet to the desktop used in the current system) and forms a separate environment for the virtual reality helmet).
Unlike similar projects such as Simula VR, Stardust, Motorcar and Safespaces, the composite server wxrd is built taking into account a minimum of dependencies and resource consumption. Wxrd also allows working not only with applications based on the Wayland protocol and makes it possible to run X11 applications using the xwayland DDX server.
Since the extension of the Wayland protocol for virtual keyboards is under development, data input to wxrd is implemented through a keyboard emulation system that transfers all Unicode characters, including emoji, from the virtual keyboard provided in xrdesktop.
wxrd requires a video card that supports the Vulkan graphics API and the VK_EXT_image_drm_format_modifier extension, Compatible with Mesa from version 21.1 (included with Ubuntu 21.04). Using the Vulkan API for rendering requires the VK_EXT_physical_device_drm extension, which was introduced in Mesa 21.2 (Ubuntu 21.10).
Of the advantages of using a separate composite server for virtual reality systems instead of integrating with the 2D window managers used to display a traditional desktop:
- When logged into a Wayland or X11-based session, the wlroots library opens a window where you can easily capture keyboard input and mouse events and redirect that input to a specific window in a virtual reality environment. In the future, they plan to take this opportunity to organize input not only through a virtual reality controller, but also through a conventional keyboard and mouse.
- Windows are not limited by the edges of a 2D desktop and can be arbitrarily sized, limited only by the maximum texture size supported by the hardware.
- Windows rendering in wxrd is done with the native 3D headset (HMD) refresh rate, while normal window manager window mirroring uses the refresh rate used to refresh information on a fixed monitor.
- Font rendering can be done taking into account the pixel density of the 3D helmet, without reference to the pixel density of a fixed monitor.
- It is possible to use wxrd on systems that only have a 3D helmet and do not have a regular monitor.
While the cons of a separate composite server for virtual reality:
- In a virtual reality environment, only applications that have been specially released for a separate composite server are shown, without the ability to transfer or mirror windows that are already open on the traditional desktop to the virtual reality environment (that is, to continue working with open applications in a virtual reality environment) normal screen, you will have to restart in a separate environment for the 3D helmet).
- Wayland support may be limited in Vulkan API implementations. For example, gbm and wlroots cannot be used with proprietary NVIDIA drivers due to lack of support for the VK_EXT_drm_format_modifier extension.