Bevezettük a wxrd-t, egy Wayland-alapú kompozit szervert a virtuális valóság rendszereihez

A Collabora cég bemutatott egy kompozit wxrd szervert, amelyet a Wayland protokoll alapján valósítottak meg, és háromdimenziós virtuális valóság környezetekben xrdesktop komponenseken alapuló asztali számítógép létrehozására szolgálnak. Az alap a Sway felhasználói környezet fejlesztői által kifejlesztett wlroots könyvtár és a virtuális valóság rendszerekben való használatra tervezett wxrc kompozit szerver. A projekt kódja C nyelven íródott, és az MIT licenc alatt kerül terjesztésre.

Az eredetileg az xrdesktopban javasolt megoldástól eltérően a wxrd egy speciális kompozit szervert kínál a virtuális valóság környezetekhez, ahelyett, hogy a meglévő ablakkezelőket és asztali shelleket adaptálná a VR-rendszerekhez (az xrdesktop projekt külön javításokat biztosít a kwin és a GNOME Shell számára, amelyek minden újhoz adaptálást igényelnek ezen komponensek felszabadulása). A wxrd használata nem csak egy meglévő kétdimenziós asztal tartalmának tükrözését teszi lehetővé, egyidejűleg egy normál monitoron is megjelenítve, hanem a kifejezetten háromdimenziós asztalhoz elindított ablakok külön feldolgozását (azaz nem biztosít hozzáférést a VR sisak az aktuális rendszertáblán használt asztalhoz, de külön környezetet képez a VR sisak számára).

A Simula VR, a Stardust, a Motorcar és a Safespaces hasonló projektektől eltérően a wxrd kompozit szervert a minimális számú függőség és az alacsony erőforrás-felhasználás figyelembevételével hozták létre. A Wxrd emellett lehetővé teszi, hogy ne csak a Wayland protokollon alapuló alkalmazásokkal dolgozzon, hanem lehetővé teszi az X11 alkalmazások elindítását az xwayland DDX szerver használatával.

Mivel a Wayland protokollbővítmény virtuális billentyűzetekhez fejlesztés alatt áll, a wxrd-be való bevitel egy billentyűzetbeviteli emulációs rendszeren keresztül valósul meg, amely az xrdesktop virtuális billentyűzetéről továbbítja az összes unicode karaktert, beleértve az emojikat is. A wxrd futtatásához olyan videokártyára van szüksége, amely támogatja a Vulkan grafikus API-t és a VK_EXT_image_drm_format_modifier kiterjesztést, amelyet a Mesa a 21.1-es kiadás óta támogat (az Ubuntu 21.04-ben benne van). A Vulkan API megjelenítéséhez a VK_EXT_physical_device_drmm kiterjesztésre van szükség, amelyet a Mesa 21.2-ben (Ubuntu 21.10) vezettek be.

A hagyományos asztali számítógépek megjelenítéséhez használt XNUMXD ablakkezelőkkel való integráció helyett különálló összetett szerver használatának előnyei a virtuális valóság rendszereihez:

  • Ha Wayland vagy X11 alapú munkamenetben fut, a wlroots könyvtár megnyit egy ablakot, amelyben egyszerűen rögzítheti a billentyűzet bevitelét és az egér eseményeit, és átirányíthatja a bemenetet egy adott ablakba egy virtuális valóság környezetben. A jövőben azt tervezik, hogy ezzel a funkcióval nem csak egy VR-vezérlőn keresztül, hanem egy hagyományos billentyűzet és egér segítségével is rendszerezhetik a bevitelt.
  • A Windowsokat nem korlátozza a XNUMXD asztali keret, és tetszőleges méretűek lehetnek, csak a hardver által támogatott maximális textúraméret korlátozza.
  • A wxrd-ben az ablakmegjelenítés a natív 3D fejre szerelt kijelző (HMD) képfrissítési gyakoriságával történik, míg a hagyományos ablakkezelők ablakainak tükrözésekor a rögzített monitoron lévő információk frissítésének gyakoriságát használják.
  • A betűtípusok a 3D sisak pixelsűrűségének figyelembevételével jeleníthetők meg, az álló monitor pixelsűrűségére való hivatkozás nélkül.
  • A wxrd olyan rendszereken használható, amelyek csak 3D headsetet tartalmaznak, és nem rendelkeznek normál monitorral.

A VR-hez különálló kompozit szerver hátrányai:

  • A VR-környezetben csak a különálló kompozit szerverhez elindított alkalmazások jelennek meg, anélkül, hogy a hagyományos asztalon már megnyílt ablakokat át lehetne vinni vagy tükrözni lehetne a VR-környezetbe (azaz a normál képernyőn megnyitott alkalmazásokkal való munka folytatásához külön környezetben kell újraindulnia a 3D sisak számára).
  • A Wayland támogatása korlátozott lehet a Vulkan API implementációiban. Például a gbm és a wlroots nem használhatók szabadalmaztatott NVIDIA illesztőprogramokkal a VK_EXT_drm_format_modifier bővítmény támogatásának hiánya miatt.



Forrás: opennet.ru

Hozzászólás