Zaprezentowano wxrd, serwer kompozytowy oparty na Waylandzie dla systemów wirtualnej rzeczywistości

Firma Collabora zaprezentowała serwer kompozytowy wxrd, zrealizowany na bazie protokołu Wayland i przeznaczony do tworzenia pulpitu na bazie komponentów xrdesktop w trójwymiarowych środowiskach wirtualnej rzeczywistości. Jako podstawę wykorzystano bibliotekę wlroots, rozwijaną przez twórców środowiska użytkownika Sway, oraz serwer kompozytowy wxrc, zaprojektowany do użycia w systemach wirtualnej rzeczywistości. Kod projektu napisano w języku C i udostępniono na licencji MIT.

W przeciwieństwie do pierwotnie zaproponowanego rozwiązania w xrdesktop, wxrd oferuje specjalizowany kompozytowy serwer dla środowisk wirtualnej rzeczywistości, zamiast adaptacji istniejących menedżerów okien i środowisk pulpitu do VR (projekt xrdesktop udostępnia oddzielne łatki do kwin i GNOME Shell, które wymagają dostosowania do każdej nowej wersji tych komponentów). Użycie wxrd pozwala nie tylko na lustrzane odbicie zawartości istniejącego dwuwymiarowego pulpitu, który jest jednocześnie wyświetlany na zwykłym monitorze, ale także na osobne przetwarzanie okien, specjalnie uruchomionych dla trójwymiarowego pulpitu (tzn. nie udostępniać dostępu z hełmu VR do korzystanego na bieżącym systemie pulpitu, ale stworzyć osobne środowisko dla hełmu VR).

Odtwarzaj wideo

W przeciwieństwie do podobnych projektów takich jak Simula VR, Stardust, Motorcar i Safespaces, serwer kompozytowy wxrd stworzono z myślą o użyciu minimalnej liczby zależności oraz niskim zużyciu zasobów. Wxrd pozwala także na współpracę nie tylko z aplikacjami opartymi na protokole Wayland, ale umożliwia również uruchamianie aplikacji X11 za pomocą serwera DDX xwayland.

Ponieważ rozszerzenie protokołu Wayland dla wirtualnych klawiatur jest w fazie rozwoju, wprowadzanie danych w wxrd zostało zrealizowane poprzez system emulacji wprowadzania z klawiatury, który przesyła wszystkie znaki unicode, w tym emoji, z wirtualnej klawiatury dostarczanej w xrdesktop. Aby działać, wxrd wymaga karty graficznej obsługującej API graficzne Vulkan oraz rozszerzenie VK_EXT_image_drm_format_modifier, wspierane w Mеsa od wersji 21.1 (w składzie Ubuntu 21.04). Do użycia API Vulkan dla renderowania wymaga się rozszerzenia VK_EXT_physical_device_drmm, które pojawiło się w Mesa 21.2 (Ubuntu 21.10).

Zalety korzystania z oddzielnego kompozytora serwera do systemów rzeczywistości wirtualnej zamiast integracji z dwuwymiarowymi menedżerami okien, używanymi do wyświetlania tradycyjnego pulpitu:

  • Podczas uruchamiania sesji na bazie Wayland lub X11, biblioteka wlroots otwiera okno, w którym łatwo można zorganizować przechwytywanie wejścia z klawiatury oraz zdarzeń myszy i przekierować te dane do określonego okna w środowisku rzeczywistości wirtualnej. W przyszłości planuje się wykorzystanie tej funkcji do organizacji wejścia nie tylko za pomocą kontrolera VR, ale również zwykłej klawiatury i myszy.
  • Okna nie są ograniczone ramkami dwuwymiarowego pulpitu i mogą mieć dowolny rozmiar, ograniczony tylko maksymalnie wspieranym sprzętem rozmiaru tekstur.
  • Renderowanie okien w wxrd odbywa się z rodzimej częstotliwości odświeżania dla hełmów 3D (HMD), podczas gdy przy lustrzanym odbiciu okien z tradycyjnych menedżerów okien używana jest częstotliwość stosowana do odświeżania informacji na stacjonarnym monitorze.
  • Renderowanie czcionek może być wykonywane z uwzględnieniem gęstości pikseli hełmu 3D, bez odniesienia do gęstości pikseli stacjonarnego monitora.
  • Możliwe jest użycie wxrd w systemach, które mają tylko hełm 3D i nie posiadają zwykłego monitora.

Wady oddzielnego serwera kompozytora dla VR:

  • W środowisku VR wyświetlane są tylko aplikacje, które zostały specjalnie uruchomione dla oddzielnego serwera kompozytora, bez możliwości przenoszenia lub odbicia w VR okien, które są już otwarte na tradycyjnym pulpicie (tj. aby kontynuować pracę z aplikacjami otwartymi na zwykłym ekranie, trzeba je ponownie uruchomić w oddzielnym środowisku dla hełmu 3D).
  • Wsparcie dla Wayland może być ograniczone w implementacjach API Vulkan. Na przykład, gbm i wlroots nie mogą być używane z własnościowymi sterownikami NVIDIA z powodu braku wsparcia dla rozszerzenia VK_EXT_drm_format_modifier.

Odtwarzaj wideo


Źródło: opennet.ru
Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster