Uma alteração incorporada ao Qt esta semana pode permitir que os clientes Wayland sobrevivam a reinicializações do compositor, como quando o compositor trava.
O desenvolvedor do KDE, David Edmundson, conseguiu a melhoria do Qt Wayland para que os clientes possam, opcionalmente, sobreviver às reinicializações do compositor. Edmundson explicou nesta fusão :
Introduzir caminho para sobreviver a reinicializações do compositor
Este patch apresenta um mecanismo opcional para os clientes sobreviverem a uma falha e se reconectarem aparentemente sem problemas.
No caso de uma desconexão do soquete do compositor, simplesmente tentamos reconectar novamente e reproduzir todos os dados necessários para manter um estado consistente de onde paramos.
Do ponto de vista do aplicativo, qualquer pop-up aberto será descartado e, potencialmente, obteremos um novo framecallback, mas será quase totalmente transparente. Os usuários de QWaylandClientExtensions personalizados serão notificados por meio do sinal activeChanged e reconstruídos como se o compositor tivesse retirado e anunciado novamente o global.
Os contextos OpenGL serão marcados como inválidos e tratados da mesma forma que uma redefinição de GPU. No próximo quadro, o RHI notará que eles são inválidos e os recriará, só que agora com um novo wl_display e um novo EGLDisplay.
Usuários de objetos EGL/nativos de baixo nível podem ser afetados, mas a alternativa neste ponto está sendo fechada de qualquer maneira. Todo o codepath é ativado apenas por meio de uma variável de ambiente.
A funcionalidade do Qt Wayland atualmente precisa ser ativada por meio da variável de ambiente QT_WAYLAND_RECONNECT . Essa mudança será introduzida com o Qt 6.6 no final do ano.
Até a próxima !!
Nenhum comentário:
Postar um comentário