Présentation de wxrd, un serveur composite basé sur Wayland pour les systèmes de réalité virtuelle

La société Collabora a présenté un serveur composite wxrd, implémenté sur la base du protocole Wayland et destiné à créer un bureau basé sur des composants xrdesktop dans des environnements de réalité virtuelle tridimensionnels. La base est la bibliothèque wlroots, développée par les développeurs de l'environnement utilisateur Sway, et le serveur composite wxrc, conçu pour être utilisé dans les systèmes de réalité virtuelle. Le code du projet est écrit en C et est distribué sous licence MIT.

Contrairement à la solution initialement proposée dans xrdesktop, wxrd propose un serveur composite spécialisé pour les environnements de réalité virtuelle, au lieu d'adapter les gestionnaires de fenêtres et les shells de bureau existants pour les systèmes VR (le projet xrdesktop fournit des correctifs distincts pour kwin et GNOME Shell, qui nécessitent une adaptation à chaque nouveau système). libération de ces composants). L'utilisation de wxrd vous permet non seulement de refléter le contenu d'un bureau bidimensionnel existant, affiché en même temps sur un moniteur ordinaire, mais également de traiter séparément les fenêtres spécifiquement lancées pour un bureau tridimensionnel (c'est-à-dire de ne pas fournir d'accès depuis le casque VR au bureau utilisé sur la table système actuelle, mais pour former un environnement séparé pour le casque VR).

Contrairement aux projets similaires Simula VR, Stardust, Motorcar et Safespaces, le serveur composite wxrd a été créé dans le but d'utiliser un nombre minimum de dépendances et une faible consommation de ressources. Wxrd vous permet également de travailler non seulement avec des applications basées sur le protocole Wayland et permet d'exécuter des applications X11 à l'aide du serveur xwayland DDX.

Étant donné que l'extension du protocole Wayland pour les claviers virtuels est en cours de développement, la saisie dans wxrd est implémentée via un système d'émulation de saisie au clavier qui transfère tous les caractères Unicode, y compris les emoji, à partir du clavier virtuel fourni dans xrdesktop. Pour exécuter wxrd, vous avez besoin d'une carte vidéo prenant en charge l'API graphique Vulkan et l'extension VK_EXT_image_drm_format_modifier, prise en charge dans Mesa depuis la version 21.1 (incluse dans Ubuntu 21.04). L'utilisation de l'API Vulkan pour le rendu nécessite l'extension VK_EXT_physical_device_drmm, introduite dans Mesa 21.2 (Ubuntu 21.10).

Avantages de l'utilisation d'un serveur composite distinct pour les systèmes de réalité virtuelle au lieu de l'intégration avec les gestionnaires de fenêtres XNUMXD utilisés pour afficher un bureau traditionnel :

  • Lorsqu'elle est exécutée dans une session basée sur Wayland ou X11, la bibliothèque wlroots ouvre une fenêtre dans laquelle vous pouvez facilement capturer les événements de saisie au clavier et de souris et rediriger cette entrée vers une fenêtre spécifique dans un environnement de réalité virtuelle. À l'avenir, ils prévoient d'utiliser cette fonctionnalité pour organiser la saisie non seulement via un contrôleur VR, mais également à l'aide d'un clavier et d'une souris classiques.
  • Les fenêtres ne sont pas limitées par le cadre du bureau XNUMXD et peuvent être de taille arbitraire, limitée uniquement par la taille de texture maximale prise en charge par le matériel.
  • Le rendu des fenêtres dans wxrd est effectué à la fréquence de rafraîchissement de l'image du casque 3D (HMD) natif, tandis que lors de la mise en miroir des fenêtres à partir des gestionnaires de fenêtres conventionnels, la fréquence utilisée pour mettre à jour les informations sur un moniteur fixe est utilisée.
  • Les polices peuvent être rendues en tenant compte de la densité de pixels d'un casque 3D, sans référence à la densité de pixels d'un moniteur fixe.
  • Il est possible d'utiliser wxrd sur des systèmes dotés uniquement d'un casque 3D et non d'un moniteur classique.

Inconvénients d'un serveur composite séparé pour la VR :

  • Dans l'environnement VR, seules les applications spécifiquement lancées pour un serveur composite distinct sont affichées, sans possibilité de transférer ou de mettre en miroir des fenêtres déjà ouvertes sur un bureau traditionnel vers l'environnement VR (c'est-à-dire que pour continuer à travailler avec des applications ouvertes sur un écran normal, vous il faudra redémarrer dans un environnement séparé pour le casque 3D).
  • La prise en charge de Wayland peut être limitée dans les implémentations de l'API Vulkan. Par exemple, gbm et wlroots ne peuvent pas être utilisés avec les pilotes propriétaires NVIDIA en raison du manque de prise en charge de l'extension VK_EXT_drm_format_modifier.



Source: opennet.ru

Ajouter un commentaire