Sistemas operacionaisNotícias

GTK 4 recebe melhor compatibilidade com Vulkan

O GTK é um toolkit multiplataforma para criação de interfaces gráficas. Caso você utilize a versão principal do Ubuntu, ou distros como Fedora, Linux Mint, Elementary OS, Endless OS e Pop!_OS em suas principais versões. É o GTK que compõe as interfaces gráficas destes sistemas. Ao contrário do que muitos pensam, apps para outras plataformas, por exemplo, o Windows, podem ser escritos em GTK. Atualmente a versão suportada na maioria dos sistemas é o GTK 3.      

Quando o assunto é GTK, lançamentos frequentes não são comuns, e sempre existe aquela velha rixa com o Qt. Esse também utilizado para desenhar interfaces gráficas. Deepin e KDE são ótimos exemplos. Não quero entrar no mérito de quem é melhor ou pior, o mais importante é que os softwares construídos com essas tecnologias cumpram seus objetivos.   

No início do ano escrevi uma postagem sobre o GTK 4, e que seu lançamento pode estar cada vez mais próximo. Caso queira ver algumas das mudanças do atual GTK 3 para o GTK 4, acesse a postagem mencionada acima e veja as vantagens dessa nova versão.  

Aprimorado o uso do Vulkan no GTK4

Se você é do meio gamer, já deve conhecer o Vulkan. Essa API gráfica vem demonstrando melhoras significativas na performance dos jogos no Linux, e até mesmo no Windows. Atualmente o GTK 4 além de suportar o OpenGL, também suporta Vulkan.  

Fazendo o uso de uma API como o Vulkan ou OpenGL, as aplicações podem ter melhor performance. Pois, podem aliviar o uso das GPUs ao processar gráficos. Utilizar uma GPU dedicada para trabalhar, dá maior autonomia ao processador. Afinal, ao invés de se preocupar com tarefas gráficas, o mesmo pode focar em processos mais importantes.  

Quando você abre uma aplicação em seu sistema, uma quantidade assombrosa de pixels desenham em tela tudo que você está vendo. Para fins comparativos, um monitor full hd tem 2 milhões de pixels em tela. Obviamente que as GPUs modernas podem dar conta dessa quantidade de informação, entretanto cada vez que um simples detalhe é modificado durante o uso da aplicação, por exemplo, clicar em um pequeno botão, é necessário redesenhar tudo novamente.  

Imagine esse processo sendo feito a cada momento, o tempo todo em que você faz uso de algo no sistema. Para contornar isso, os compositores de janelas usam uma técnica inteligentíssima: apenas redesenhar a parte que realmente teve algum detalhe modificado.  

Assim o GTK rastreia quais partes da janela mudou, envia essas informações ao compositor de janelas, para que o próprio compositor possa redesenhar apenas o novo conteúdo. Ao utilizar o EGL (uma interface entre as APIs de renderização, OpenGL, OpenGL ES ou OpenVG), tudo já era bem otimizado, contudo com o Vulkan problemas ocorriam.  

gtk4-vulcan-mutter-gnome-apps-linux-open-source-software-livre-api-graphics-opengl

Você pode perceber na imagem acima que o resultado não foi o dos melhores. Georges Stavracas, desenvolvedor do Gnome, após efetuar muitas pesquisas e testes conseguiu solucionar o problema. Para quem desconhece, Georges é um desenvolvedor brasileiro e vem desempenhando um trabalho primoroso no GNOME. Graças a ele, a função de arrastar e soltar os ícones para agrupá-los no menu do GNOME Shell tornou-se realidade (sem o uso de extensões de terceiros).  

A descoberta do problema foi durante o desenvolvimento do GNOME To Do, programa que o brasileiro vem mantendo, e pasmem os senhores, já faz uso do GTK 4. Por padrão o renderizador do Vulkan no GTK 4 sempre envia toda janela para o compositor. A GPU é a encarregada por todo processo, mas não deixa de ser uma solução deselegante. Todavia através de uma função do Vulkan, “VK_KHR_incremental_present”, a renderização pode ser otimizada e apenas os detalhes que forem novos serão redesenhados na janela.  

gtk4-vulcan-mutter-gnome-apps-linux-open-source-software-livre-api-graphics-opengl

Tudo indica que o GTK 4 de fato está bem próximo, com melhor desempenho e fazendo uso de tecnologias, como o Vulkan, a tecnologia promete dar um salto em comparação ao GTK 2 e GTK 3. Somando o Wayland na equação, e quem sabe sua compatibilidade com drivers proprietários NVIDIA (tendo em vista que os drivers abertos da AMD já possuem um desempenho bem interessante com o Wayland) a performance seja ainda superior. Claro, que a compatibilidade dos drivers proprietários da NVIDIA não é de responsabilidade da comunidade. Afinal, como implementar algo sem a ciência de seu real funcionamento? Engenharia reversa é algo extremamente complexo e seria bem mais simples a NVIDIA cooperar com o projeto.  

Ansioso para o GTK 4? Sei que muitos estão torcendo para que ele dê um up na performance de aplicações e do GNOME Shell. Será que em 2020 veremos o GTK 4, enfim, sendo utilizado em larga escala?  

Participe de nosso fórum Diolinux Plus. Assim você sempre fica por dentro das novidades.  

Até o próximo post, te espero aqui no blog Diolinux, SISTEMATICAMENTE! 😎  

Fonte: Georges Stavracas


Viu algum erro ou gostaria de adicionar alguma sugestão a essa matéria? Colabore, clique aqui.

Diolinux Ofertas - Aproveite os melhores descontos em diversos produtos!