Wine e Wayland dão mais um passo com mais códigos mesclados
O trabalho contínuo, pouco a pouco, para fazer com que o Wine e o Wayland funcionem totalmente juntos no Linux deu mais um passo, com uma terceira grande solicitação de mesclagem aceita. O Wine 8.4 de meados de março foi o primeiro lançamento de desenvolvimento a realmente ter parte do trabalho inicial de Wayland.
Da solicitação de mesclagem agora aceita:
Este MR apresenta os mecanismos do driver para lidar com eventos dinâmicos do compositor Wayland, usando eventos wl_output como o caso de uso orientador (ou seja, queremos atualizar as configurações de exibição do win32u quando as configurações do host são alteradas).
Neste projeto, criamos um thread dedicado para ler e despachar eventos Wayland recebidos do compositor. Se um manipulador de eventos Wayland deseja que algum código seja executado no contexto de um thread específico do HWND, ele pode adicionar um evento interno a uma fila personalizada que temos para cada thread (habilitado para GUI). O retorno de chamada do driver ProcessEvents processa eventos internos dessa fila. Para ativar os threads em espera, usamos um canal para notificar sobre novos eventos internos, com o final da leitura atuando como o fd da fila do host do thread. Isso é semelhante ao funcionamento do winemac.drv.
Usamos os mecanismos mencionados acima para enfileirar as atualizações do dispositivo de exibição win32u no thread da janela da área de trabalho. Como são muitas as peças que precisam se encaixar, esse MR chega aos poucos ao desenho final:
Por que isso é realmente necessário? Bem, atualmente o Wine usa o X11 e, portanto, para qualquer um que esteja executando o Wayland, ele será executado no XWayland, que é basicamente o X rodando no Wayland como uma camada de compatibilidade. Como Collabora disse em seu anúncio original em 2020, falando sobre isso, eles disseram que é "uma fonte de complexidade e possíveis ineficiências" e, portanto, seria "ideal se o Wine pudesse conversar diretamente com Wayland para permitir uma pilha mais enxuta e eficiente em sistemas modernos "
Portanto, o resultado final deve ser para os usuários do Wayland, que eventualmente serão todos, fazer com que o Wine funcione sem a camada XWayland e que tudo funcione bem no futuro.
Liam Dawe Sobre o autor - Liam Dawe