… de linhas de código? Eis, um número impressionando não só pela quantidade em sim, mas também pelo fato de que há muitos anos, utilizar as soluções gráficas da AMD em plataformas baseadas em sistemas GNU/Linux, era algo “terrível”, dado o descaso suporte desta empresa em relação aos seus drivers! Porém, com o crescimento e a importância do Software Livre, este cenário mudou e as empresas de Tecnologia passaram a dar uma atenção especial para o nosso querido Tux…
“For quite a while now the modern AMD Linux kernel graphics driver (AMDGPU/AMDKFD code) has been the single largest driver within the mainline Linux kernel code-base. It’s been far larger than the other upstream kernel drivers given the complexities of modern GPUs and is only becoming even larger. With the Linux 5.17 kernel likely to be released later today followed by the Linux 5.18 merge window then getting underway, I was curious about the current size of this massive AMD Linux kernel graphics driver.”
— by Phoronix.
O kernel Linux conta com +2/3 de sua base de códigos em drivers, o que torna os sistemas derivados compatíveis com inúmeras soluções de hardware, disponíveis no mercado. E pelo fato das mais recentes contagens estimarem que o kernel já possui +30 milhões de linha de código, podemos concluir que +20 milhões está relacionados somente a drivers. Destes, quase 4 milhões de linhas de código são designadas para o subsistema gráfico da AMD (AMDGPU/AMDKFD), tornando-o o maior driver dentro da base de códigos do kernel Linux! E dada as complexidades das GPUs modernas, estes números tendem a aumentar ainda mais…
Para se ter uma idéia da grandeza destes números, os drivers gráficos Intel i915 possuem apenas 341 mil linhas de código, os quais também já incluem o suporte para as mais recentes soluções integradas: Intel DG2/Alchemist e Xe HP. Uma pena que a publicação do Phoronix não relacione também os drivers Noveau, designados para as soluções gráficas da nVidia. Por fim, deveremos também levar em consideração que estamos nos referindo aos drivers de código aberto (e não os proprietários), além do fato de que tanto a nVidia quanto a AMD, possuem abordagens diferentes, no que se refere ao suporte para o kernel Linux.
A nVidia é bem “conhecida” pelo fato de NÃO colaborar com a comunidade de código aberto (chegando ao ponto do próprio Linus Torvalds “mostrar o dedinho” em uma entrevista); no entanto, ela desenvolve os seus drivers proprietários, os quais apresentam excelente suporte e por muitos anos, foram superiores em relação aos desenvolvidos pela AMD. Já esta última, apesar de não ter drivers proprietários tão bons o quanto os da nVidia, se aproximou mais da comunidade e passou a colaborar com ela, para o desenvolvimento dos atuais drivers AMDgpu, que por sua vez são bem melhores que os antigos drivers radeon.
Seria este o momento ideal, para a realização de uma limpeza de código nesta base de drivers? Em geral, os drivers disponíveis para Linux suportam uma base gigantesca de hardwares, inclusive aqueles que já foram lançados há muitos anos (que nem sequer possuem o suporte oficial do fabricante)! No caso das soluções gráficas, elas em geral são muito dependentes das APIs gráficas e, sabendo que muitas delas não são mais compatíveis com as APIs mais modernas (exigidas para o funcionamento da maioria dos jogos e aplicações), seus respectivos códigos poderiam ser perfeitamente removidos e/ou mantidos a parte (para fins de legado).
Devo considerar as soluções da AMD na montagem do meu novo PC desktop? &;-D