Na quarta-feira (11), a Nvidia fez um anúncio que ninguém esperava. A companhia abriu o código-fonte dos módulos de suas GPUs no Linux. Com isso, podemos esperar que distribuições Linux não dependam tanto de drivers fechados para trabalhar adequadamente com placas de vídeo de linhas como GeForce RTX e GTX. Mas é bom não se animar. Ainda não.
Comecemos pela parte boa
Como a própria companhia afirma, o objetivo dessa decisão é "melhorar a experiência de uso de GPUs Nvidia no Linux". Não é que seja impossível usar os chips gráficos da empresa em sistemas baseados no kernel Linux. Mas, sob determinadas circunstâncias, pode haver problemas de desempenho ou de aproveitamento de recursos.
Isso porque, no universo da Nvidia, há duas categorias de drivers para Linux. A primeira é a de drivers proprietários, isto é, com código-fonte fechado. A segunda são os drivers Nouveau, que têm código-fonte aberto.
Basicamente, os drivers Nouveau são desenvolvidos pela comunidade com algum auxílio de desenvolvedores da Nvidia. Note que "algum auxílio" não é o mesmo que "suporte completo". Essa solução é satisfatória para muitos usuários. Mas outros enfrentam falhas de renderização ou instabilidade no sistema operacional, por exemplo.
A saída acaba sendo a de recorrer aos drivers fechados da Nvidia. Eles não são de instalação difícil, mas vão contra o princípio de muita gente de evitar o uso de software proprietário.
Por aí você já consegue notar o porquê de a abertura do código dos módulos ser tão positiva. É como se a Nvidia tivesse, finalmente, decidido apoiar de verdade a comunidade em torno do Linux.
Agora, a parte não tão boa
A abertura de código-fonte começa pelo pacote R515 dos drivers para Linux da Nvidia. Mas isso diz respeito somente a módulos direcionados ao kernel. Módulos executados em nível de usuário permanecem fechados. Em outras palavras, apenas parte dos drivers foi aberta.
Além disso, somente o código direcionado a GPUs de datacenter nas arquiteturas Turing e Ampere está pronto para ser plenamente aproveitado.
Pacotes direcionados às GPUs GeForce usadas em PCs ou workstations estão em fase "alpha". Isso significa que levará algum tempo para a abertura de código beneficiar essas máquinas.
Por que a Nvidia abriu o código-fonte?
Sistemas baseados no kernel Linux são muito usados em supercomputadores e datacenters. Aparentemente, a Nvidia decidiu abrir o código-fonte dos módulos para facilitar o uso de seus chips gráficos nesses segmentos. Lembremos que GPUs podem ser usadas para otimizar uma série de aplicações, não apenas conteúdo gráfico.
Apesar disso, o movimento da companhia pode, sim, beneficiar as distribuições Linux mais populares, ainda que não imediatamente.
Primeiro porque o código aberto será usado para aprimorar os drivers Nouveau. Segundo porque companhias como Canonical, Red Hat e SUSE já trabalham para aproveitar a novidade em suas distribuições.
No caso da Canonical, a companhia deve liberar pacotes com os módulos abertos para o recém-lançado Ubuntu 22.04 LTS. Já Christian Schaller, diretor da Red Hat para desktops e gráficos, chegou a dizer: "No longo prazo, esperamos oferecer uma experiência com hardware Nvidia semelhante a que hoje oferecemos para hardware Intel e AMD, em termos de funcionalidade disponível para uso".
Trabalhar com a Nvidia era tão complicado que, em 2012, Linus Torvalds chegou a mostrar o dedo do meio à companhia. Depois, Torvalds se desculpou. Veremos se, com a decisão da Nvidia, os conflitos ficarão definitivamente no passado.
O código-fonte dos módulos da Nvidia foi liberado no GitHub e tem licença dupla GPL/MIT.