KWinFT, um fork do KWin focado em Wayland, introduzido

Roman Gilg, participando no desenvolvimento do KDE, Wayland, Xwayland e X Server, introduzido projeto KWinFT (KWin Fast Track), desenvolvendo um gerenciador de janelas composto flexível e fácil de usar para Wayland e X11 baseado na base de código KWinGenericName. Além do gerenciador de janelas, o projeto também desenvolve uma biblioteca envoltório com a implementação de uma ligação sobre libwayland para Qt/C++, continuando o desenvolvimento KWaylandGenericName, mas livre de ligação ao Qt. O código é distribuído sob licenças GPLv2 e LGPLv2.

O objetivo do projeto é reciclar KWin e KWayland usando
tecnologias modernas e práticas de desenvolvimento que permitem acelerar o desenvolvimento do projeto, refatorar o código, adicionar otimizações e simplificar a adição de inovações fundamentais, cuja integração no KWin em sua forma atual é difícil. KWinFT e Wrapland podem ser usados ​​para substituir perfeitamente KWin e KWayland, mas não são limitados pelo aprisionamento do KWin de muitos produtos onde manter a compatibilidade total é uma prioridade que impede o avanço da inovação.

Com o KWinFT, os desenvolvedores têm liberdade para experimentar novos recursos, mantendo a estabilidade por meio do uso de técnicas de desenvolvimento mais modernas. Por exemplo, para verificar o código KWinFT, é utilizado um sistema de integração contínua, incluindo verificação por meio de diferentes linters, geração automática de assemblies e testes extensivos. Em termos de desenvolvimento de funcionalidades, o foco principal do KWinFT será fornecer suporte de protocolo completo e de alta qualidade
Wayland, incluindo a reformulação dos recursos arquitetônicos do KWin que complicam a integração com o Wayland.

Entre as inovações experimentais já adicionadas ao KWinFT estão:

  • O processo de composição foi reformulado, o que melhorou significativamente a renderização do conteúdo rodando X11 e Wayland. Além disso, foi adicionado um cronômetro para minimizar atrasos entre a criação de uma imagem e sua exibição na tela.
  • Implementada uma extensão do protocolo Wayland "visualizador“, permitindo que o cliente execute dimensionamento e corte das bordas da superfície no lado do servidor. Combinada com o próximo grande lançamento do XWayland, a extensão fornecerá a capacidade de emular alterações na resolução da tela para jogos mais antigos.
  • Suporte total para rotação e espelhamento de saída para sessões baseadas em Wayland.

Wrapland fornece uma interface de programação estilo Qt que fornece acesso às funções libwayland em um formato fácil de usar em projetos C++. Wrapland foi originalmente planejado para ser desenvolvido como um fork do KWayland, mas devido ao estado insatisfatório do código KWayland, agora está sendo considerado como um projeto para revisar completamente o KWayland. A diferença mais importante entre Wrapland e KWayland é que ele não está mais vinculado ao Qt e pode ser usado separadamente sem instalar o Qt. No futuro, o Wrapland poderá ser usado como uma biblioteca universal com uma API C++, eliminando a necessidade dos desenvolvedores usarem a API C da libwayland.

Pacotes prontos são criados para usuários do Manjaro Linux. Para usar o KWinFT, basta instalar o kwinft do repositório e, para reverter para o KWin padrão, instale o pacote kwin. O uso do Wrapland não está limitado ao KDE, por exemplo, uma implementação cliente foi preparada para uso em wlroots protocolo de controle de saída, permitindo servidores compostos baseados em wlroots (Balançar, Wayfire) use o KScreen para personalizar a saída.

Enquanto isso continuar atualizações do projeto serão publicadas KWin-baixa latência, formando uma edição do gerenciador composto KWin com patches para aumentar a capacidade de resposta da interface e corrigir alguns problemas associados à velocidade de resposta às ações do usuário, como gagueira de entrada. Além do DRM VBlank, o KWin-lowlatency suporta o uso de glXWaitVideoSync, glFinish ou NVIDIA VSync para fornecer proteção contra tearing sem impactar negativamente a capacidade de resposta (a proteção original contra tearing do KWin é implementada usando um temporizador e pode levar a grandes latências (até 50 ms) de saída e, como resultado, um atraso na resposta quando entrada). Novas versões do KWin-lowlatency podem ser usadas em vez do servidor composto de estoque no KDE Plasma 5.18.

Fonte: opennet.ru

Adicionar um comentário