KWinFT, un fork de KWin axé sur Wayland, a été introduit

Romain Gilg, participant en développement de KDE, Wayland, Xwayland et X Server, представил projet KWinFT (KWin Fast Track), développement d'un gestionnaire de fenêtres composite flexible et facile à utiliser pour Wayland et X11 basé sur la base de code KWinName. En plus du gestionnaire de fenêtres, le projet développe également une bibliothèque pays enveloppant avec l'implémentation d'une liaison sur libwayland pour Qt/C++, développement continu KWaylandComment, mais libéré de la liaison à Qt. Le code est distribué sous licences GPLv2 et LGPLv2.

Le but du projet est de recycler KWin et KWayland en utilisant
des technologies et des pratiques de développement modernes qui permettent d'accélérer le développement du projet, de refactoriser le code, d'ajouter des optimisations et de simplifier l'ajout d'innovations fondamentales dont l'intégration dans KWin sous sa forme actuelle est difficile. KWinFT et Wrapland peuvent être utilisés pour remplacer de manière transparente KWin et KWayland, mais ils ne sont pas limités par le verrouillage KWin de nombreux produits où le maintien d'une compatibilité totale est une priorité qui empêche l'innovation d'avancer.

Avec KWinFT, les développeurs ont les mains libres pour expérimenter de nouvelles fonctionnalités tout en maintenant la stabilité grâce à l'utilisation de techniques de développement plus modernes. Par exemple, pour vérifier le code KWinFT, un système d'intégration continue est utilisé, comprenant une vérification à l'aide de différents linters, une génération automatique d'assemblys et des tests avancés. En termes de développement de fonctionnalités, l'objectif principal de KWinFT sera de fournir un support de protocole complet et de haute qualité.
Wayland, y compris la refonte des fonctionnalités architecturales de KWin qui compliquent l'intégration avec Wayland.

Parmi les innovations expérimentales déjà ajoutées à KWinFT figurent :

  • Le processus de compositing a été retravaillé, ce qui a considérablement amélioré le rendu du contenu sous X11 et Wayland. De plus, une minuterie a été ajoutée pour minimiser les délais entre la création d'une image et son affichage à l'écran.
  • Implémentation d'une extension du protocole Wayland "visionneuse», permettant au client d'effectuer une mise à l'échelle et un découpage côté serveur des bords de la surface. Combinée avec la prochaine version majeure de XWayland, l'extension offrira la possibilité d'émuler les changements de résolution d'écran pour les jeux plus anciens.
  • Prise en charge complète de la rotation et de la mise en miroir des sorties pour les sessions basées sur Wayland.

Wrapland fournit une interface de programmation de style Qt qui permet d'accéder aux fonctions de libwayland sous une forme facile à utiliser dans les projets C++. Wrapland était initialement prévu pour être développé comme un fork de KWayland, mais en raison de l'état insatisfaisant du code KWayland, il est maintenant considéré comme un projet de refonte complète de KWayland. La différence la plus importante entre Wrapland et KWayland est qu'il n'est plus lié à Qt et peut être utilisé séparément sans installer Qt. À l'avenir, Wrapland pourra être utilisé comme bibliothèque universelle avec une API C++, éliminant ainsi le besoin pour les développeurs d'utiliser l'API C de libwayland.

Des packages prêts à l'emploi sont créés pour les utilisateurs de Manjaro Linux. Pour utiliser KWinFT, installez simplement kwinft à partir du référentiel et pour revenir à KWin standard, installez le package kwin. L'utilisation de Wrapland ne se limite pas à KDE, par exemple, une implémentation client a été préparée pour être utilisée dans racines wl protocole de contrôle de sortie, autorisant les serveurs composites basés sur wlroots (Balancement, Feu de chemin) utilisez KScreen pour personnaliser la sortie.

En attendant continuer des mises à jour du projet seront publiées KWin-faible latence, formant une édition du gestionnaire composite KWin avec des correctifs pour augmenter la réactivité de l'interface et résoudre certains problèmes associés à la vitesse de réponse aux actions de l'utilisateur, tels que le bégaiement des entrées. En plus du DRM VBlank, KWin-lowlatency prend en charge l'utilisation de glXWaitVideoSync, glFinish ou NVIDIA VSync pour fournir une protection contre le déchirement sans affecter négativement la réactivité (la protection contre le déchirement d'origine de KWin est implémentée à l'aide d'une minuterie et peut conduire à des latences importantes (jusqu'à 50 ms) en sortie. et, par conséquent, un retard dans la réponse lors de la saisie). Les nouvelles versions de KWin-lowlatency peuvent être utilisées à la place du serveur composite d'origine dans KDE Plasma 5.18.

Source: opennet.ru

Ajouter un commentaire