Solução entre NVIDIA e Wayland é revelada por desenvolvedor do KDE
Notícias

Solução entre NVIDIA e Wayland é revelada por desenvolvedor do KDE

Um dos problemas clássicos no mundo Linux são computadores com placas NVIDIA não funcionarem corretamente com o Wayland. Com cada vez mais distros estão transacionando para Wayland e a NVIDIA não demonstrando nenhuma atitude, quem tem placas da marca vai ficando atrasado neste sentido. Mas um desenvolvedor do KDE revelou qual é o problema entre NVIDIA e Wayland, algo que já está sendo trabalhado.

Xaver Hugl publicou em seu blog que o problema está na forma como os aplicativos lidam com a renderização de imagem. Segundo ele, quando utilizamos uma aplicação, durante a renderização da imagem, ela grava uma lista de comandos utilizando a API gráfica, como o OpenGL ou o Vulkan, enviada para a GPU produzir a imagem.

Isso acontece porque a transmissão de dados entre componentes do computador tem uma latência, caso cada comando fosse sincronizado entre CPU e GPU, haveria um gargalo reduzindo todo o desempenho.

Entretanto, isso gera outros problemas, por exemplo, enquanto um arquivo está sendo processado pela GPU, o usuário pode tentar executar alguma tarefa com ele pela CPU, ocasionando erros imprevisíveis. Para solucionar isso, foram desenvolvidas técnicas, a mais popular até então, chama-se Implicit sync.

Xavier explica que com a técnica Implicit sync, a sincronização entre CPU e GPU ocorre implicitamente, sem o envolvimento da aplicação. Isso significa que o kernel ou o driver da GPU recebe os comandos de renderização das aplicações, confere quais imagens estão sendo utilizadas, quais tarefas foram feitas anteriormente e pode fazer a aplicação esperar toda a execução; tipicamente isso tudo ocorre numa fração de segundos.

O modelo Implicit sync é mais fácil para os desenvolvedores fazerem suas aplicações funcionarem corretamente, mas especialmente no Wayland, aplicações podem acabar perdendo a sincronia entre CPU e GPUs NVIDIA, renderizando comandos não relacionados à tarefa em execução.

Explicit sync pode ser a solução entre NVIDIA e Wayland

Segundo Xavier, a solução para o prolema entre NVIDIA e Wayland já começou a ser incluída no código-fonte do Wayand, ela se chama Explicit sync. Ele conta que no modelo Explicit sync, a aplicação monitora diretamente a renderização, controlando exatamente quais tarefas devem ser sincronizadas.

Mas os desenvolvedores não precisam retrabalhar todas as suas aplicações para se beneficiar do Explicit sync. O suporte deve ocorrer sobretudo no Wayland, na API gráfica e no driver da NVIDIA.

Enquanto Wayland, Vulkan e OpenGL já trabalham no suporte ao Explicit sync, ainda em estágio experimental, o driver NVIDIA conta apenas com alguns remendos insuficientes: ele atrasa a resposta ao Wayland até completar a renderização, causando sérios erros que podem encerrar aplicações; no X11, a solução é similar e funciona com o X.Org, mas quando utilizando o Xwayland ocorrem erros de ações duplicadas, causando problemas imprevisíveis.

Xavier completa que há muita discussão pela internet entre pessoas experienciando erros constantes entre NVIDIA e Wayland, enquanto outros, não encontram problema algum. Segundo ele, esse erro não é determinístico, podendo depender da combinação de CPU e GPU, da versão do kernel, do driver, do compositor e das aplicações utilizadas.

Com a implementação do Explicit sync ocorrendo nos compositores, no Xwayland e, quem sabe, no driver proprietário da NVIDIA, todos os problemas entre NVIDIA e Wayland devem se tornar coisa do passado. Esperamos que, já que o problema foi identificado, isso aconteça tão rápido quanto possível, ainda mais que o Fedora 41 já deve vir apenas com suporte nativo ao Wayland.

Diolinux Ofertas - Aproveite os melhores descontos em diversos produtos!