Roman Gilg, in the development of KDE, Wayland, Xwayland, and X Server, le projet (KWin Fast Track), which develops a flexible and easy-to-use compositing window manager for Wayland and X11, based on the codebase of In addition to the window manager, the project also develops the library with an implementation of a binding over libwayland for Qt/C++, continuing the development of but free from the binding to Qt. The code is distributed under the GPLv2 and LGPLv2 licenses.
The goal of the project is to refactor KWin and KWayland using
modern technologies and development practices that will accelerate the project's progress, refactor the code, add optimizations, and simplify the addition of fundamental innovations, the integration of which into KWin in its current form is challenging. KWinFT and Wrapland can be used for the transparent replacement of KWin and KWayland, but they are not limited to the constraints imposed by the bindings to KWin that many products have, maintaining full compatibility with which is a priority that hinders the promotion of innovations.
In KWinFT, developers have more freedom and can experiment with new features while maintaining stability by employing more modern development techniques. For instance, a continuous integration system is used for code testing in KWinFT, which includes checks through various linters, automatic build generation, and extensive testing. Regarding functional development, KWinFT will primarily focus on ensuring high-quality and complete support for the Wayland protocol, including a redesign of KWin's architectural features that complicate integration with Wayland.
Among the experimental innovations already added to KWinFT are:
A revamped compositing process, which has significantly improved the rendering of content under the management of X11 and Wayland. Additionally, a timer has been added to minimize delays between image creation and its display on the screen.
- The implementation of the Wayland protocol extension "
- viewporter«, permettant au client d'effectuer des opérations de mise à l'échelle et de rognage des bords de la surface côté serveur. Associé à la prochaine version majeure, l'extension XWayland permettra d'émuler le changement de résolution d'écran pour les anciens jeux.
- Support complet de la rotation et du miroir de sortie pour les sessions basées sur Wayland.
Wrapland offre une interface logicielle conçue dans le style Qt, permettant d'accéder aux fonctions de libwayland de manière conviviale pour les projets en C++. À l'origine, Wrapland devait être développé comme un fork de KWayland, mais en raison de l'état insatisfaisant du code de KWayland, il est désormais considéré comme un projet de refonte complète de KWayland. La différence principale entre Wrapland et KWayland est l'élimination de la dépendance à Qt et la possibilité de l'utiliser indépendamment de l'installation de Qt. À l'avenir, Wrapland pourra fonctionner comme une bibliothèque universelle avec une API C++, permettant aux développeurs de ne pas devoir utiliser l'API C de libwayland.
Des paquets prêts à l'emploi sont disponibles pour les utilisateurs de Manjaro Linux. Pour utiliser KWinFT, il suffit d'installer à partir du dépôt kwinft, et pour revenir à KWin par défaut, il faut installer le paquet kwin. L'utilisation de Wrapland n'est pas limitée à KDE, par exemple, une implémentation d'un client pour le protocole de gestion de sortie, permettant sur les serveurs composites basés sur wlroots (, ) d'utiliser KScreen pour configurer la sortie.
En attendant, des mises à jour du projet vont être publiées , qui forme une édition du gestionnaire de composition KWin avec des correctifs pour augmenter la réactivité de l'interface et corriger certains problèmes liés à la réactivité aux actions de l'utilisateur, tels que le retard dans l'entrée. Pour offrir une protection contre le tearing de l'affichage sans affecter négativement la réactivité, en plus du DRM VBlank dans KWin-lowlatency, l'utilisation de glXWaitVideoSync, glFinish ou NVIDIA VSync est supportée (la protection d'origine contre le tearing dans KWin est réalisée à l'aide d'un minuteur et peut entraîner de grands délais (jusqu'à 50 ms) de sortie et, par conséquent, un retard de réaction lors de l'entrée). Les nouvelles versions de KWin-lowlatency peuvent être utilisées à la place du serveur de composition par défaut dans KDE Plasma 5.18.
Source : opennet.ru
