AMDGPU, el controlador oficial para las gráficas AMD Radeon presente en Linux, se ha convertido en el mayor componente de todos los que están en el kernel. Si el año pasado informamos que iba camino de ocupar cuatro millones de líneas de código, en la actualidad ya supera los cinco millones según datos recopilados y aportados por Phoronix.
AMDGPU fue presentado en el año 2016 junto con la iniciativa GPUOpen. A pesar de la desconfianza inicial por el nefasto precedente que sentó FGLRX, AMD se ha esforzado en ofrecer un producto capaz de exprimir en serio sus gráficas y que ha servido de cimiento para la que la pila gráfica estándar de Linux pudiera competir con NVIDIA y ejecutar videojuegos triple A con resultados más que satisfactorios.
El activo desarrollo de AMDGPU ha hecho que en estos momentos ocupe más de 5 millones de líneas de código de los 34,8 millones que tiene Linux en total. Esto quiere decir que el driver para gráficas de Radeon acapara aproximadamente el 14,5% de todas líneas del kernel, pero al igual que en ocasiones anteriores, aquí hay algo de trampa.
AMDGPU está compuesto en estos momentos y según los datos proporcionados por Phoronix por un total de 5.033.484 líneas de código, de las cuales 167.575 son en blanco, 527.798 son comentarios y 4.338.111 son código real. El tamaño del controlador a nivel de código es enorme si se compara con las 201.000 líneas que ocupa Nouveau aproximadamente y las 381.000 aproximadas de i915, el driver de referencia para gráficas de Intel mientras Xe termina de cocinarse.
El driver oficial y de código abierto de AMD para Linux ha evolucionado con el paso de los años para no solo ser el componente que más líneas ocupa en el kernel, sino también en el cimiento que ha permitido al gigante rojo competir con NVIDIA (al menos en escritorio y gaming) y es uno de los puntales de la Steam Deck junto con RADV, el driver de Vulkan para Radeon presente en Mesa.
Llegados a este punto, no viene mal recordar que los controladores del kernel y los drivers de Mesa cumplen funciones diferentes y que por lo tanto no son excluyentes, sino todo lo contrario. El kernel Linux proporciona AMDGPU, que se encarga de poner en funcionamiento la gráfica y de controlar aspectos como la potencia y la temperatura, mientras que por otro lado Mesa aporta el soporte para OpenGL, OpenCL y Vulkan, tecnologías que son implementadas vía API en las aplicaciones y que se encargan de proporcionar el soporte de aceleración por hardware en ese frente.
Esperemos que la responsable de Radeon siga apostando fuerte por AMDGPU, más viendo que en apariencia empieza a ser más diligente a la hora de soportar gráficas que han sido lanzadas hace poco al mercado.