Collabora desenvolve driver Wayland para Wine

Wayland 1.19 lançado com pequenas atualizações e correções de protocolo
wayland

Depois de anunciar várias ações no desenvolvimento do kernel Linux 5.10 LTS, a Collabora não para e já desenvolve um novo driver Wayland para funcionar no Wine. O Wine é uma camada de compatibilidade capaz de rodar aplicativos Windows em Linux, MacOS e outros sistemas. Ele foi desenvolvido e usado por mais de duas décadas e também é o que o Steam Proton usa para permitir que jogos do Windows rodem em sistemas Linux.

Alexandros Frantzis foi quem anunciou a criação de um driver Wayland para Wine. Este driver permite que aplicativos Windows GDI/OpenGL sejam executados em compositores Wayland sem qualquer uso de X11/XWayland.

O código ainda não foi incorporado ao Wine e, devido ao congelamento do código, é tarde demais para aparecer no lançamento do Wine 6.0 do próximo mês, mas o branch experimental está disponível hoje para os interessados.

Este driver Wayland está funcionando para aplicativos GDI/OpenGL básicos e todas as funcionalidades principais, mas alguns itens estão faltando. Ainda a ser abordado é a minimização de janelas, suporte de layout de teclado, capturas, vários monitores e suporte Vulkan.

Em sistemas Linux, o Wine atualmente usa seu driver X11 para fazer interface com o servidor de exibição X11. Em muitos sistemas modernos, onde o Wayland se tornou o protocolo de servidor de exibição preferido, outra camada é necessária para traduzir entre o X11 e o Wayland. Isso vem na forma de um servidor X11 especial chamado XWayland. Esta configuração funciona. Porém, a dependência extra do X11/XWayland é uma fonte de problemas.

Collabora desenvolve driver Wayland para Wine

Collabora desenvolve driver Wayland para Wine

O ideal seria se o Wine pudesse ‘falar’ diretamente com Wayland. É aí que entra a Collabora.

Após vários meses de trabalho, temos o prazer de anunciar uma primeira proposta de driver Wayland para Wine. Neste ponto, a proposta está na forma de um RFC (Request For Comment) , a fim de explorar a melhor forma de avançar com o upstreaming e posterior desenvolvimento do driver.

O protocolo do Wayland é mais restrito em comparação com sistemas de exibição mais tradicionais como X11 e win32. Isso traz um conjunto único de desafios na integração do Wayland com o Wine. Como o modelo da janela do Wayland não é baseado em um único espaço de coordenadas 2D plano, como o do X11, o protocolo do Wayland não permite que os aplicativos controlem sua posição absoluta na tela. Os aplicativos Win32 dependem muito desse recurso. Portanto, o driver Wayland usa alguns truques para acomodar muitos casos comuns, como janelas temporárias (menus, dicas de ferramentas etc.).

O driver Wayland atualmente oferece suporte a aplicativos GDI e OpenGL/DirectX. Vem com redimensionamento e manipulação de estado de janela (exceto minimização), entrada de mouse e teclado QWERTY e um único monitor. Isso já nos dá acesso a um grande conjunto de aplicativos. Alguns aplicativos que experimentei e já funcionam bem são Firefox, Stellarium, Supertuxkart, 010Editor, Battle For Wesnoth e GIMP (com algumas ressalvas).

E o Vulkan?

Vulkan não é suportado atualmente, entretanto, já existe outro projeto em https://github.com/varmd/wine-wayland/. Assim, se concentra exclusivamente no Wine Wayland + Vulkan.

Portanto, para as pessoas que desejam jogar com o driver Wayland, o anúncio RFC do wine-devel fornece mais algumas instruções e detalhes técnicos.

Assista, então, ao vídeo mostrando alguns aplicativos do Windows em execução com o driver Wine Wayland no compositor de referência de Weston:

Mais detalhes sobre este driver inicial do Wayland para Wine através da lista de discussão do Wine.