Po dziewięciu miesiącach prac opublikowano stabilną wersję serwera kompozytowego Weston 15.0, rozwijającego technologie, które wspierają pełne wsparcie protokołu Wayland w Enlightenment, GNOME, KDE i innych środowiskach użytkowników. Rozwój Weston ma na celu zapewnienie wysokiej jakości bazy kodu i przykładów roboczych do wykorzystania Wayland w środowiskach desktopowych oraz w rozwiązaniach wbudowanych, takich jak platformy dla systemów rozrywki samochodowej, smartfonów, telewizorów i innych urządzeń konsumpcyjnych. Kod projektu jest rozpowszechniany na licencji MIT.
Zmiany w nowej gałęzi Weston:
- Dodano nowy interfejs graficzny 'lua-shell' (wywoływany jako 'weston --shell=lua'), który umożliwia wykorzystanie języka Lua do dostosowywania zachowania zarządzania oknami i tworzenia całkowicie spersonalizowanych środowisk użytkowników. Jako przykład, na bazie 'lua-shell' wdrożono prosty mozaikowy system zarządzania oknami.
- Dodano eksperymentalny backend renderowania, który korzysta z graficznego API Vulkan (aktywowany jako 'weston --renderer=vulkan'). Backend umożliwia uruchamianie Westona jako nakładki na inne kompozytowe serwerów na bazie Wayland i X11, a także pracę bezpośrednio z sterownikami podsystemu DRM jądra, które wspierają Vulkan 1.0. W dodatku do backendu dodano klientów Wayland simple-vulkan i simple-dmabuf-vulkan.
- Dodano wsparcie dla protokołów Wayland commit-timing-v1 i fifo-v1. Protokół commit-timing pozwala przypisać ograniczenie czasowe do zawartości powierzchni (serwer kompozytowy powinien wyświetlić zmianę zawartości w możliwie najkrótszym czasie, ale nie wcześniej). Protokół fifo wprowadza mechanizm kolejkowania FIFO do przetwarzania aktualizacji zawartości wyświetlanej powierzchni. W połączeniu te protokoły pozwalają osiągnąć płynność wyjścia i wyświetlania klatek z uwzględnieniem pionowego odświeżania w takich zastosowaniach jak gry i odtwarzanie wideo. Dodano wsparcie dla rozszerzeń Vulkan VK_KHR_present_id2 i VK_KHR_present_wait2, które umożliwiają przesyłanie klatek w trybie FIFO, ale bez zwiększania opóźnień.
- Dodano wsparcie dla protokołu Wayland color-representation-v1, umożliwiającego określenie reprezentacji kolorów powierzchni Wayland, niezbędnej do obsługi HDR i prawidłowego renderowania pełno kolorowych buforów YUV. Protokół pozwala klientom Wayland na przesyłanie metadanych potrzebnych do określenia przezroczystości, modelu kolorów, subdyskretyzacji i zakresu kwantyzacji, które są stosowane przy konwersji bufora z danymi modelu kolorów YUV na reprezentację RGB. Dodano wsparcie dla formatów pikseli z 10-bitami na kanał, takich jak NV15, NV20, NV30 i P030.
- Dodano możliwość korzystania z modułów jądra KMS (Kernel Mode Setting) do przekazywania (off-load) operacji konwersji kolorów na stronę kontrolera wyświetlacza.
- Umożliwiono wykorzystanie profilera Perfetto do identyfikacji problemów z wydajnością przy renderowaniu, a także do monitorowania i wizualizacji czasu wykonania różnych operacji.
- Do backendu DRM dodano podstawowe wsparcie dla mechanizmu VRR (Variable Refresh Rate), który adaptacyjnie zmienia częstotliwość odświeżania monitora, aby zapewnić płynność i brak zacięć podczas gier i odtwarzania wideo. Do jego użycia wymagany jest sterownik DRM obsługujący VRR.
Źródło: opennet.ru
