Viene introdotto wxrd, un server composito basato su Wayland per sistemi di realtà virtuale

Collabora ha introdotto il server composito wxrd, implementato sulla base del protocollo Wayland e progettato per formare un desktop basato su componenti xrdesktop all'interno di ambienti di realtà virtuale XNUMXD. Si basa sulla libreria wlroots, sviluppata dagli sviluppatori dell'ambiente utente Sway, e sul server composito wxrc, progettato per l'uso nei sistemi di realtà virtuale. Il codice del progetto è scritto in C e distribuito sotto licenza MIT.

A differenza della soluzione originariamente proposta in xrdesktop, wxrd offre un server composito specializzato per ambienti di realtà virtuale, invece di adattare i gestori di finestre e le shell desktop esistenti per i sistemi VR (il progetto xrdesktop fornisce patch separate per kwin e GNOME Shell, che richiedono l'adattamento per ogni nuovo rilascio di questi componenti). L'uso di wxrd consente non solo di eseguire il mirroring dei contenuti di un desktop XNUMXD esistente visualizzato contemporaneamente su un normale monitor, ma anche di elaborare separatamente finestre lanciate appositamente per un desktop XNUMXD (ovvero non fornire l'accesso da un casco VR a il desktop utilizzato sul sistema attuale). table, ma per formare un ambiente separato per il casco VR).

A differenza di progetti simili come Simula VR, Stardust, Motorcar e Safespaces, il server composito wxrd è progettato tenendo conto di un numero minimo di dipendenze e di un basso consumo di risorse. Wxrd consente inoltre di lavorare non solo con applicazioni basate sul protocollo Wayland e consente di eseguire applicazioni X11 utilizzando il server xwayland DDX.

Poiché l'estensione del protocollo Wayland per le tastiere virtuali è in fase di sviluppo, l'input a wxrd viene implementato tramite un sistema di emulazione dell'input da tastiera che trasferisce tutti i caratteri Unicode, incluse le emoji, dalla tastiera virtuale fornita a xrdesktop. wxrd richiede una scheda grafica che supporti l'API grafica Vulkan e l'estensione VK_EXT_image_drm_format_modifier supportata da Mesa dalla versione 21.1 (inclusa con Ubuntu 21.04). L'utilizzo dell'API Vulkan per il rendering richiede l'estensione VK_EXT_physical_device_drmm introdotta in Mesa 21.2 (Ubuntu 21.10).

Vantaggi dell'utilizzo di un server composito VR separato invece dell'integrazione con i gestori di finestre XNUMXD utilizzati per visualizzare il desktop tradizionale:

  • Quando viene eseguito in una sessione basata su Wayland o X11, la libreria wlroots apre una finestra in cui è possibile catturare facilmente l'input da tastiera e gli eventi del mouse e reindirizzare tale input a una finestra specifica in un ambiente VR. In futuro, hanno in programma di utilizzare questa funzione per organizzare l'input non solo tramite un controller VR, ma anche utilizzando una tastiera e un mouse convenzionali.
  • Windows non è limitato a un desktop XNUMXD e può essere dimensionato arbitrariamente, limitato solo dalla dimensione massima della trama supportata dall'hardware.
  • Le finestre sono renderizzate in wxrd alla frequenza di aggiornamento del casco 3D nativo (HMD), mentre il mirroring delle finestre dai gestori di finestre convenzionali utilizza la frequenza utilizzata per aggiornare le informazioni su un monitor fisso.
  • Il rendering dei caratteri può essere eseguito tenendo conto della densità dei pixel del casco 3D, senza riferimento alla densità dei pixel di un monitor fisso.
  • È possibile utilizzare wxrd su sistemi che hanno solo un casco 3D e nessun monitor normale.

Contro di un server composito separato per VR:

  • L'ambiente VR mostra solo le applicazioni avviate specificatamente per un server composito separato, senza la possibilità di trasferire o eseguire il mirroring delle finestre già aperte sul desktop tradizionale nell'ambiente VR (ovvero, per continuare a lavorare con le applicazioni aperte su uno schermo normale, dovrai riavviare in un ambiente separato per il casco 3D).
  • Il supporto di Wayland potrebbe essere limitato nelle implementazioni dell'API Vulkan. Ad esempio, gbm e wlroots non possono essere utilizzati con driver NVIDIA proprietari a causa della mancanza di supporto per l'estensione VK_EXT_drm_format_modifier.



Fonte: opennet.ru

Aggiungi un commento