Na semana passada, mais precisamente em 17 de maio, foi lançado o Weston 12.0. Aqui está uma olhada em algumas das mudanças que chegaram nesta nova versão. Então, vejam os destaques e mudanças promovidos no Weston 12 e que foram compartilhados pela equipe da Collabora. O recurso serve de base para o Wayland.
Em termos de recursos, há dois novos back-ends, suporte para vários dispositivos de varredura e adicionamos algumas novas implementações de protocolo. Juntamente com esses recursos, também adicionamos várias correções e alterações internas que facilitariam ainda mais a integração de funcionalidades como gerenciamento de cores ou a capacidade de carregar vários back-ends ao mesmo tempo.
Destaques
O back-end-drm passou por muitas atualizações e mudanças: as propriedades de tipo de conteúdo de rotação plana, alfa e HDMI foram integradas. Dependendo do buffer de conteúdo do cliente, o compositor agora pode aproveitar essas propriedades para usar totalmente os recursos de hardware de exibição disponíveis.
Além disso, o suporte para várias GPUs como dispositivos de verificação (KMS) chegou nesta versão; suporte que pode ser habilitado passando dispositivos adicionais ao iniciar o compositor.
Como alternativa para analisar EDIDs, usamos a biblioteca libdisplay-info. Agora, use conectores de write-back ao fazer uma captura de tela, junto com a infraestrutura de back-end para fazer isso funcionar.
Ainda no back-end-drm, agora verificamos se podemos fazer viradas de página assíncronas e, junto com a implementação do protocolo tearing, podemos oferecer suporte explícito ao tearing para clientes que solicitarem isso.
Como estamos caminhando para ter a capacidade de carregar vários back-ends, dois novos viram o dia nesta nova versão: back-end-vnc, que é semelhante ao back-end-rdp, é baseado nas bibliotecas aml e clearvnc. Possui suporte TLS e autenticação de usuário. O outro backend adicionado é o PipeWire; ele cria um nó para cada saída e, como o plug-in com o mesmo nome de back-end, pode ser usado para capturar saídas Weston para processamento com outros aplicativos.
Algumas melhorias adicionais para o suporte multi-head foram adicionadas ao back-end-rdp, enquanto o back-end-headless agora faz uso de decorações de saída para poder testar o plug-in color-lcms. O redimensionamento de janelas agora é possível para o wayland de back-end aninhado.
Um formulário curto para carregar backends, shells e renderizadores foi adicionado, enquanto ainda oferece suporte à chamada de comando mais antiga. Por exemplo, para o backend sem cabeça, podemos carregá-lo com “–backend=headless”, para shell de desktop, podemos carregá-lo com “–shell=desktop” enquanto especificamos o renderizador pixman agora pode ser feito com “–renderer =pixman”.
Com esta versão, o plug-in color-lcms obteve várias melhorias na precisão e no desempenho da transformação de cores.
O que foi removido ou descontinuado
Nesta versão, o launcher-logind foi preterido e desabilitado por padrão. Como o launcher-libseat suporta logind, isso não deve causar nenhuma regressão. Nosso plano é remover totalmente o launcher-logind e confiar apenas no launcher-libseat. Consulte nossas notas de versão do Weston 11 , que se expandem ainda mais sobre esse assunto.
Weston 12.0: destaques e mudanças
libweston/desktop (formalmente libweston-desktop) levaria em consideração o estado pendente do cliente, quando não há buffer anexado. É útil em situações em que os clientes gostariam de começar do início em um estado maximizado/tela cheia. Além disso, anexar um buffer NULL vazio, depois de ter um válido anteriormente, causaria uma emissão de sinal de forma que a implementação dos clientes shell weston_desktop_api
seria capaz de lidar com isso de acordo.
Várias correções relacionadas ao manuseio de assentos, seleção e estado da janela, bem como suporte ao protocolo xwayland_shell_v1 chegaram ao componente xwayland da libweston.
Clientes, como simple-egl, tiveram algumas mudanças: a capacidade de testar tearing, descartar Y_INVERT
sinalizador linux-dmabuf não utilizado e suporte de escala fracionária foram adicionados, enquanto o suporte para simple-dmabuf-v4l2 foi adicionado para lidar com dispositivos NV12 que combinam planos.
Para o ivi-shell, agora temos a ativação do foco do teclado para superfícies do tipo xdg-shell, semelhante à forma como lidamos com isso no desktop e no kiosk-shell. Mais algumas atualizações chegaram, bem como correções de bugs. Isso inclui manipulação de evento de sinal adicional (criação e destruição de saída), mas também sinais específicos para destruição do controlador. Por fim, o suporte ao painel de entrada também foi adicionado.
Muitas outras correções de bugs chegaram a todos os níveis: desktop, quiosque e ivi-shell, API virtual DRM (plug-ins remotos/pipewire) e módulo de compartilhamento de tela são alguns dos componentes que receberam correções de bugs.
Alterações de última hora para usuários
libweston-desktop DSO foi incorporado ao libweston. Vincular agora com libweston forneceria acesso à antiga biblioteca libweston-desktop. Os usuários do libweston-desktop precisariam ajustar seus cabeçalhos <libweston/desktop.h>
em vez de usar <libweston-desktop/libweston-desktop.h>
. Caso contrário, a própria API permanece a mesma.
Além disso, para o ivi-shell, o ivi-layout viu alguma simplificação da API: struct ivi_layout_interface
ponteiros de função tiveram seus valores de retorno removidos e agora contêm asserts embutidos para validação de dados (os usuários precisariam fornecer dados adequados).
Alterações de API
Algumas mudanças de API também chegaram a essa mudança. Vale a pena mencionar a funcionalidade de limitar as mensagens de log; uma família de estruturas de vetores de coordenadas para pares de coordenadas (weston_coord
) e algumas funções para ativar ou desativar o estado do DPMS de saída de Weston quando o estado do compositor permitir. Para ver os nomes reais das funções da API e mais detalhes, consulte as notas da versão. Mais detalhes no blog da Collabora.