Roman Gilg, no desenvolvimento do KDE, Wayland, Xwayland e X Server, projeto (KWin Fast Track), desenvolvendo um gerenciador de janelas composto flexível e fácil de usar para Wayland e X11, baseado no código-fonte . Além do gerenciador de janelas, o projeto também desenvolve a biblioteca com a implementação de uma camada sobre libwayland para Qt/C++, continuando o desenvolvimento do , mas livre da dependência do Qt. O código é distribuído sob as licenças GPLv2 e LGPLv2.
O objetivo do projeto é reformular o KWin e KWayland usando
tecnologias e práticas modernas de desenvolvimento, permitindo acelerar o progresso do projeto, realizar refatorações de código, adicionar otimizações e simplificar a adição de inovações fundamentais, cuja integração no KWin na forma atual é dificultada. KWinFT e Wrapland podem ser usados para substituir KWin e KWayland de forma transparente, mas não são limitados pelas amarras que o KWin impõe a muitos produtos, onde manter a plena compatibilidade é uma prioridade que impede o avanço de inovações.
No KWinFT, os desenvolvedores têm liberdade e podem experimentar novas funcionalidades, mantendo a estabilidade através da aplicação de técnicas de desenvolvimento mais modernas. Por exemplo, para teste do código do KWinFT, é utilizada um sistema de integração contínua, incluindo verificação com diferentes linters, montagem automática e testes avançados. Quanto ao desenvolvimento de funcionalidades, o foco principal no KWinFT será garantir um suporte completo e de qualidade para o protocolo
Wayland, incluindo a reformulação das características arquitetônicas do KWin, que complicam a integração com o Wayland.
Entre as novidades experimentais já adicionadas ao KWinFT, destacam-se:
- O processo de composição foi reformulado, o que melhorou significativamente a renderização de conteúdo sob a gestão do X11 e Wayland. Um temporizador adicional foi adicionado para minimizar a latência entre a criação de uma imagem e sua exibição na tela.
- Implementou-se uma extensão do protocolo Wayland chamada “”, que permite que o cliente execute ações de escalonamento e corte das bordas da superfície do lado do servidor. Em conjunto com a próxima versão significativa do XWayland, a extensão permitirá emular a mudança de resolução para jogos mais antigos.
- Suporte total para rotação e espelhamento da saída para sessões baseadas em Wayland.
Wrapland oferece uma interface de programação de aplicativos projetada em estilo Qt, fornecendo acesso às funcionalidades do libwayland de maneira conveniente para uso em projetos em C++. Inicialmente, Wrapland foi planejado para ser desenvolvido como um fork do KWayland, mas devido ao estado insatisfatório do código do KWayland, agora é considerado um projeto de reescrita completa do KWayland. A principal diferença entre Wrapland e KWayland é a eliminação da vinculação ao Qt e a possibilidade de uso isolado sem a instalação do Qt. No futuro, Wrapland poderá ser utilizado como uma biblioteca universal com API em C++, liberando os desenvolvedores da necessidade de usar a API em C do libwayland.
Pacotes prontos foram criados para usuários do Manjaro Linux. Para usar o KWinFT, basta instalar o kwinft do repositório, e para reverter ao KWin padrão, instale o pacote kwin. O uso do Wrapland não se limita ao KDE; por exemplo, uma implementação do cliente para o protocolo de gerenciamento de saída foi preparada, permitindo que servidores compostos baseados em wlroots (, ) usem o KScreen para configurar a saída.
Enquanto isso, as atualizações do projeto estão sendo publicadas. , que cria uma edição do gerenciador de composição KWin com patches para aumentar a responsividade da interface e corrigir alguns problemas relacionados à velocidade de resposta às ações do usuário, como a latência na entrada. Para proteger contra o tearing na saída sem impactar negativamente a responsividade, além do DRM VBlank, o KWin-lowlatency suporta o uso de glXWaitVideoSync, glFinish ou NVIDIA VSync (a proteção contra tearing originalmente presente no KWin foi implementada usando um timer e pode causar grandes atrasos (de até 50 ms) na saída e, consequentemente, retardar a resposta na entrada). Novos lançamentos do KWin-lowlatency podem ser usados em vez do servidor de composição padrão no KDE Plasma 5.18.
Fonte: opennet.ru
