Wxrd, un servidor compuesto basado en Wayland para sistemas de realidad virtual
Hace poco Collabora dio a conocer el servidor compuesto wxrd, el cual está implementado sobre la base del protocolo Wayland y diseñado para formar un escritorio basado en componentes xrdesktop dentro de entornos de realidad virtual tridimensionales.
Como base, se utilizan la biblioteca wlroots, desarrollada por los desarrolladores del entorno de usuario Sway y el servidor compuesto wxrc, diseñado para su uso en sistemas de realidad virtual.
A diferencia de la solución propuesta originalmente en xrdesktop, wxrd ofrece un servidor compuesto especializado para entornos de realidad virtual, en lugar de adaptar administradores de ventanas y skins de escritorio existentes para sistemas de realidad virtual (el proyecto xrdesktop proporciona parches separados para kwin y GNOME Shell, que requieren adaptación para cada nueva liberación de estos componentes).
El uso de wxrd le permite no solo reflejar el contenido de un escritorio bidimensional existente, al mismo tiempo que se muestra en un monitor normal, sino también manejar por separado las ventanas lanzadas especialmente para un escritorio tridimensional (es decir, no proporcionar acceso desde un VR casco al escritorio utilizado en el sistema actual) y forma un entorno separado para el casco de realidad virtual).
A diferencia de proyectos similares como Simula VR, Stardust , Motorcar y Safespaces, el servidor compuesto wxrd se construye teniendo en cuenta un mínimo de dependencias y consumo de recursos. Wxrd también permite trabajar no solo con aplicaciones basadas en el protocolo Wayland y hace posible ejecutar aplicaciones X11 usando el servidor xwayland DDX.
Dado que la extensión del protocolo Wayland para teclados virtuales está en desarrollo, la entrada de datos a wxrd se implementa a través de un sistema de emulación de teclado que transfiere todos los caracteres Unicode, incluidos los emoji, desde el teclado virtual proporcionado en xrdesktop.
Wxrd requiere una tarjeta de video compatible con la API de gráficos Vulkan y la extensión VK_EXT_image_drm_format_modifier, compatible con Mesa desde la versión 21.1 (incluida con Ubuntu 21.04). El uso de la API de Vulkan para renderizar requiere la extensión VK_EXT_physical_device_drm, que se introdujo en Mesa 21.2 (Ubuntu 21.10).
De las ventajas de usar un servidor compuesto separado para sistemas de realidad virtual en lugar de integrarse con los administradores de ventanas 2D que se usan para mostrar un escritorio tradicional:
- Cuando se inicia en una sesión basada en Wayland o X11, la biblioteca wlroots abre una ventana en la que puede capturar fácilmente la entrada del teclado y los eventos del mouse y redirigir esa entrada a una ventana específica en un entorno de realidad virtual. En el futuro, planean aprovechar esta oportunidad para organizar la entrada no solo a través de un controlador de realidad virtual, sino también mediante un teclado y un mouse convencionales.
- Las ventanas no están limitadas por los bordes de un escritorio 2D y pueden tener un tamaño arbitrario, limitado solo por el tamaño máximo de textura admitido por el hardware.
- La representación de Windows en wxrd se realiza con la frecuencia de actualización nativa de los auriculares 3D (HMD), mientras que la duplicación de ventanas de los administradores de ventanas normales utiliza la frecuencia de actualización utilizada para actualizar la información en un monitor fijo.
- La representación de fuentes se puede realizar teniendo en cuenta la densidad de píxeles del casco 3D, sin hacer referencia a la densidad de píxeles de un monitor fijo.
- Es posible usar wxrd en sistemas que solo tienen un casco 3D y no tienen un monitor regular.
Mientras que las contras de un servidor compuesto separado para realidad virtual:
- En un entorno de realidad virtual, solo se muestran las aplicaciones que se han lanzado especialmente para un servidor compuesto separado, sin la capacidad de transferir o reflejar ventanas que ya están abiertas en el escritorio tradicional al entorno de realidad virtual (es decir, para continuar trabajando con aplicaciones abiertas en un entorno de realidad virtual) pantalla normal, tendrá que reiniciar en un entorno separado para el casco 3D).
- El soporte de Wayland puede estar limitado en las implementaciones de API de Vulkan. Por ejemplo, gbm y wlroots no se pueden usar con controladores propietarios de NVIDIA debido a la falta de soporte para la extensión VK_EXT_drm_format_modifier.
Fuente: https://www.collabora.com