Las GPU Arm Mali que llevan los portátiles Snapdragon, las placas de desarrollo y buena parte de los dispositivos ARM con Linux dejarán de usar el compilador de gráficos que arrastraban desde hace años. A partir de Mesa 27.0, todas las Mali con arquitectura Valhall v9 o superior pasan a usar Kraid, el compilador nuevo que el equipo de Collabora ha construido para la pila Panfrost y que ya es el predeterminado en la rama principal. Mesa 26.3 será la última entrega con el backend antiguo.
El cambio no es cosmético. Un compilador de gráficos traduce las instrucciones de los programas a algo que la GPU entiende, y de esa traducción depende el rendimiento, el consumo y la estabilidad. Kraid lleva algo menos de seis meses en desarrollo, se integró en Mesa 26.2 y ahora da el salto a la posición principal, después de que sus autores comprobaran que modela mejor el acceso a registros de estas GPU.
La cifra que resume el avance, según el resumen técnico que acompaña al anuncio, es de casi un 20% menos de instrucciones generadas. Menos instrucciones no equivalen automáticamente a un 20% más de fotogramas, pero sí a menos trabajo para el procesador de comandos y a menos consumo en tareas repetitivas, que es exactamente lo que necesita un portátil alimentado por batería.
Un cambio largamente esperado
El backend antiguo nació cuando las Mali eran otra cosa. Funcionaba, estaba probado y tenía años de parches encima, que es la mejor y la peor cualidad de un compilador maduro: nadie se atreve a tocarlo y todo el mundo sabe dónde se rompe.
Kraid se escribió desde cero con una idea distinta. En lugar de generar instrucciones y dejar que el hardware las ordene, modela el acceso a registros y planifica con más información sobre lo que la GPU va a hacer después. Ese cambio es el que permite reducir instrucciones sin tocar el código de los juegos ni de las aplicaciones.
Los autores de Collabora lo explican como una apuesta de mantenimiento. Un compilador nuevo se puede adaptar a arquitecturas futuras; uno viejo con veinte capas de parches se convierte en un problema cada vez que Arm cambia una instrucción.
¿Qué se gana y qué no?
Lo primero que notará el usuario es que las Mali dejan de ser el patito feo de Linux. Hasta ahora, buena parte del trabajo de Panfrost consistía en tapar agujeros con el compilador antiguo, y eso limitaba lo que se podía prometer en escritorio y en emuladores.
Lo segundo es el rendimiento en cargas concretas. Los compiladores nuevos suelen brillar en shaders complejos, que es donde aparecen los tirones y los artefactos. Un escritorio que repinta ventanas todo el día no nota el cambio; un juego con iluminación avanzada, sí.
Lo tercero es lo que no cambia. Kraid no arregla los problemas de memoria de vídeo compartida, ni convierte una Mali de gama media en una GPU de escritorio. Es una mejora de eficiencia en la traducción, no un milagro de hardware.
| Aspecto |
Backend anterior |
Kraid |
| GPU compatibles |
Todas las Mali |
Valhall v9 y posteriores |
| Integración |
Mantenido por parches |
Desde Mesa 26.2, predeterminado en 27.0 |
| Instrucciones generadas |
Base de comparación |
Cerca de un 20% menos |
| Modelo de registros |
Antiguo |
Rediseñado |
| Última versión con el viejo |
Mesa 26.3 |
No aplica |
El detalle de Valhall v9
La restricción de compatibilidad es la parte que conviene leer dos veces. Kraid entra por defecto para Valhall v9 y posteriores, así que las Mali más antiguas se quedan con el backend previo. No es un recorte por comodidad: el compilador se diseñó aprovechando características que esas generaciones no tienen.
Para el usuario de a pie, esto significa que el salto no llega a todos los dispositivos por igual. Un portátil con Snapdragon reciente o una placa con Mali de última generación sí entran; un aparato de 2019, no, y probablemente nunca lo hará.
Esa asimetría tiene una consecuencia práctica en el soporte. Los foros de distribuciones van a llenarse de hilos donde el mismo Mesa se comporta distinto según el chip, y el diagnóstico pasará por preguntar qué GPU lleva el equipo antes que por revisar la versión del paquete.
Apuntando al escritorio ARM
El escritorio Linux en ARM ha vivido años en un limbo. El hardware existe, los portátiles con Snapdragon X han llegado al mercado y las distribuciones han empezado a mirarlos en serio, como contamos al analizar Omarchy 4.5 y su soporte AArch64. Lo que faltaba era la capa gráfica a la altura.
Un compilador mejor no vende portátiles, pero quita excusas. Cuando la GPU deja de lastrar, la conversación sobre ARM en Linux pasa a ser sobre aplicaciones y sobre firmware, que son problemas con solución distinta.
También hay un efecto secundario interesante para el gaming. Handhelds con ARM y proyectos de emulación dependen de la pila gráfica para moverse con soltura, y cada mejora ahí se traduce en dispositivos que antes no aguantaban. El ecosistema se mueve por pasos pequeños y este es uno de ellos.
El calendario de la transición
Mesa 26.3 es la última versión con el compilador viejo como opción general, y Mesa 27.0 llega con Kraid por defecto en la rama principal. Entre una y otra quedan semanas de pruebas, y ahí es donde aparecen los casos raros: aplicaciones que usaban el comportamiento anticuado, shaders escritos para el backend anterior y capturas que nadie había mirado desde hace meses.
Los usuarios de distribuciones con actualizaciones rápidas verán el cambio antes que los de distribuciones estables, como siempre. Los segundos tendrán meses de margen y, cuando llegue, no habrá nota de prensa: solo una actualización más que hay que instalar.