Mesa 26.0 refuerza el soporte Vulkan y añade decenas de extensiones clave en RADV, ANV, NVK, PanVK, Venus y otros drivers.

Si llevas tiempo usando Linux para jugar o trabajar con gráficos, seguro que has oído hablar de Mesa como la piedra angular de los controladores gráficos abiertos. La llegada de Mesa 26.0 no es una actualización más, como ocurrió con Mesa 25.3: es un salto bastante contundente en rendimiento, compatibilidad con Vulkan y pulido general de los drivers para AMD, Intel, NVIDIA y un buen puñado de GPUs menos habituales.
En esta versión se han integrado mejoras muy concretas, desde optimizaciones agresivas de ray tracing en RADV, hasta trabajo de fondo en compiladores como ACO y NAK, pasando por nuevas extensiones Vulkan, soporte de formatos HDR, AFBC, mejoras de vídeo, correcciones de estabilidad y mucha limpieza de código. Todo ello, como en Mesa 25.3.5, se suma a una sensación clara: el ecosistema de drivers libres para Linux está alcanzando un nivel de madurez en el que, para muchos usuarios, dejar de usar controladores propietarios ya es totalmente realista.
Novedades generales de Mesa 26.0
La rama 26.0 se publica como versión de características trimestral e introduce un amplio abanico de extensiones Vulkan, ajustes de rendimiento y cambios internos. A alto nivel, la propia nota de lanzamiento destaca la llegada o promoción de extensiones importantes en varios drivers:
- VK_KHR_maintenance10 activada en ANV (Intel), NVK (NVIDIA abierto) y RADV (AMD), con mejoras de comportamiento y pequeños cambios de API que facilitan la vida a los motores gráficos modernos.
- VK_EXT_shader_uniform_buffer_unsized_array expuesta en ANV, HoneyKrisp (HK, el driver Vulkan sobre Metal para Apple), NVK y RADV, lo que permite usar arreglos de UBO sin tamaño fijo, muy útil para ciertos motores con muchos recursos dinámicos.
- VK_KHR_surface_maintenance1 y VK_KHR_swapchain_maintenance1 promovidas allá donde ya existían las extensiones EXT equivalentes (anv, hk, lvp, nvk, radv, tu, v3dv, vn), aportando mayor control sobre superficies y cadenas de intercambio.
- VK_KHR_pipeline_binary habilitada en HoneyKrisp y también en PanVK, permitiendo manejar binarios de pipeline precompilados, algo clave para reducir tiempos de carga y mejorar la experiencia en juegos y aplicaciones pesadas.
- VK_KHR_robustness2 se promociona desde la extensión EXT en todos los drivers que ya la soportaban: panvk v10+, HK, hasvk, NVK, Turnip, Lavapipe y Venus, endureciendo la robustez frente a accesos fuera de rango.
Junto a las clásicas mejoras en OpenGL, Gallium3D y el soporte de decenas de GPUs, Mesa 26.0 también hace especial hincapié en árboles Vulkan como RADV, ANV, NVK, PanVK o Venus, que son cada vez más relevantes en entornos gaming (Proton/Steam, Lutris, Heroic, etc.), pero también en virtualización, emulación y aplicaciones profesionales.
Gran impulso al ray tracing y rendimiento en RADV (AMD)
Uno de los puntos fuertes de esta versión es el foco en el ray tracing para GPUs AMD a través del driver RADV. Desde hace tiempo Valve y otros colaboradores vienen afinando el rendimiento, y en Mesa 26.0 se nota el trabajo acumulado: hay un conjunto muy amplio de parches centrados en el scheduler ACO, en la gestión de BVH, en la actualización de estructuras de aceleración y en cómo se empaquetan los shaders de ray tracing.
En pruebas reales compartidas por usuarios, se mencionan mejoras en torno a un 8% de rendimiento en trazado de rayos en títulos exigentes utilizando Proton (por ejemplo, con presets «Supreme» y GE-Proton10-28), sobre hardware como un Ryzen 5 7600, 32 GB de RAM y kernel Linux relativamente reciente. Los benchmarks sintéticos tipo GameTechBench han llegado a mostrar subidas cercanas al 50% en escenarios concretos, aunque ahí siempre hay que tomarse las cifras con cautela: puede deberse a cambios internos específicos del test o a ajustes de configuración distintos.
En el código se aprecia un esfuerzo enorme por refinar el compilador ACO: se añaden y corrigen etiquetas de optimización, se mejoran patrones para fma, min/max, operaciones de mezcla, se reorganizan pasadas de vectorización y se pulen aspectos como los hazards de lectura/escritura del registro, el uso de NOPs y el control de latencias. Todo ello apunta a reducir el trabajo inútil del shader y a aprovechar mejor el hardware de las series RDNA y GCN posteriores.
Otra pieza relevante es la implementación de HPLOC (High-Performance LBVH / optimizaciones de BVH) en la capa Vulkan común, que RADV aprovecha para mejorar la construcción de TLAS/BLAS, reducir el tamaño efectivo de las estructuras y mejorar tanto builds completos como actualizaciones de BVH. Se ajustan los conteos de nodos, se incorporan nodos box16 cuando conviene, se controlan mejor los casos con primitivas inactivas y se integran esos cambios con el soporte de RRA (Radeon Raytracing Analyzer) para diagnóstico.
Extensiones Vulkan destacadas en RADV y vídeo
Más allá del ray tracing, Mesa 26.0 también amplía la lista de extensiones Vulkan soportadas por RADV ligadas a vídeo y a flujos de trabajo avanzados:
- VK_VALVE_video_encode_rgb_conversion, que facilita la codificación de vídeo con conversión RGB, útil para ciertos pipelines multimedia.
- VK_EXT_custom_resolve, que permite implementar resoluciones personalizadas de color/profundidad, un extra muy interesante para motores modernos que afinan al milímetro sus rutas de MSAA y sus efectos postproceso.
- Mejora general del soporte de Vulkan Video en codecs como H.264/H.265/AV1, con un gran conjunto de parches alrededor de radv/video y radeonsi/vcn: se ajustan tamaños de DPB, alineamientos, gestión de referencias, resoluciones no alineadas, modos intra-only sin DPB, escrituras combinadas, modos de aliasing de imágenes de vídeo, mapas de cuantización, herramientas de screen content y mucho más.
Todo este bloque de trabajo en vídeo se acompaña de cambios en la parte de frontends VA-API, que separan y limpian la lógica de encode/decode y postprocesado, reutilizan estructuras auxiliares (radeon_bitstream) para cabeceras y tablas y van eliminando soporte antiguo como MPEG4 en varios drivers, centrándose en codecs de uso actual como H.264, H.265 o AV1.
Intel ANV e Iris: mantenimiento10, URB y rendimiento
En el frente de Intel, Mesa 26.0 aporta una gran cantidad de mejoras estructurales en el driver Vulkan ANV y en el driver OpenGL Iris, centrándose tanto en nuevas extensiones como en la estabilidad de características complejas (mesh shaders, ray queries, vídeo, etc.).
ANV habilita igualmente VK_KHR_maintenance10, lo que se traduce en soporte para nuevas banderas de resolve, ajuste fino de attachments en render passes dinámicas y mejor control sobre estados como el resolve de HDR o el manejo de adjuntos con funciones de transferencia especiales. También se implementa la extensión VK_EXT_shader_uniform_buffer_unsized_array, alineando el driver con RADV y NVK.
Un punto muy trabajado es la transición hacia el uso sistemático de intrínsecos URB en NIR (load/store URB) tanto para TCS/TES (tessellation control y evaluation) como para mesh/task shaders. Se reescribe buena parte del camino de acceso a la URB (Unified Return Buffer), se calculan offsets en bytes para Xe2 y sucesivos, se reordena la asignación de slots para niveles de teselación, se generaliza el mapeo de entradas/salidas y se aplica una posterior optimización de offsets mediante nir_opt_offsets.
Iris, por su parte, se beneficia de estas optimizaciones, pero también introduce mejoras concretas como la exposición de GL_KHR_shader_subgroup_* en Gfx ≥ 9 cuando es factible, reparación de validaciones EU (execution units), ajustes de scratch IDs en dispositivos fusionados y refactorizaciones internas para el manejo de binding tables y push constants. Se fortalecen además las herramientas de perfetto y de medición de rendimiento (intel_measure, perf, pps), con menor período mínimo de muestreo y soporte ampliado a nuevas generaciones como Xe2 y Xe3.
NVIDIA abierta: NVK, NAK y drivers Turing/Blackwell
En el universo NVIDIA de código abierto, Mesa 26.0 viene cargada de novedades alrededor de NVK (driver Vulkan) y del compilador NAK, así como mejoras en el stack Nouveau y en las integraciones con gfxstream y entornos virtuales.
Por un lado, NVK gana soporte para extensiones importantes como VK_EXT_discard_rectangles, que permite descartar regiones arbitrarias del framebuffer a nivel de pipeline, así como VK_KHR_maintenance10 y VK_EXT_shader_uniform_buffer_unsized_array. También se anuncia soporte para VK_KHR_pipeline_binary, alineándose con PanVK y HoneyKrisp en la posibilidad de almacenar y reutilizar binarios de pipeline.
Se han introducido detalles importantes como incluir el chipset en el UUID de caché de pipeline/binary, desactivar la compresión en ciertos casos de import/export de imágenes, habilitar compresión de nuevo con versiones recientes de Nouveau (por ejemplo nouveau 1.4.2), ajustar el máximo rango de almacenamiento de buffers al tamaño máximo de buffer, y manejar correctamente formatos sRGB y ASTC en Tegra, entre otros.
Respecto al compilador NAK, se nota un trabajo intenso de limpieza y mejora: se añade el ShaderModelInfo para encapsular información del modelo de shader, se refinan las latencias de instrucciones como HMMA y CS2R en arquitecturas Ampere y posteriores, se implementa un scheduler de pre-pasada y otro de retraso cruzando bloques básicos, se copia-propagan manejadores bindless, se aprovecha el número máximo de warps por SM que soporta el hardware y se armonizan comportamientos entre familias como Blackwell, Ada y Ampere.
Además, para GPUs Turing (RTX 20), se ha integrado una mejora muy concreta ligada al compilador NAK en el driver NVK: el driver ahora pasa a usar el valor máximo de warps por SM soportado por cada modelo, ajustando mejor el número de hilos activos por multiprocesador. Esto se traduce en un aprovechamiento más eficiente del hardware, sobre todo en cargas con gran peso de cómputo (juegos, motores 3D y aplicaciones de cálculo intensivo). Aunque no se han publicado cifras oficiales, la expectativa razonable es conseguir más estabilidad y fluidez en determinadas cargas, incluso si el aumento de FPS no es dramático en todos los casos.
Nouveau y el ritmo constante de los drivers abiertos de NVIDIA
El contexto más amplio es que los drivers abiertos de NVIDIA —tanto Nouveau como NVK— avanzan a un ritmo mucho mayor que hace unos años. Mesa 26.0 sigue sumando pequeñas piezas: correcciones en drm-shim, soporte de nuevos modificadores DRM para NVIDIA, mejoras en captura/reproducción de estados, compatibilidad con compresión de imágenes modernas (por ejemplo, ASTC HDR con VK_EXT_texture_compression_astc_hdr en varios drivers, incluida la parte Tegra/NVK) y trabajo continuo en Vulkan WSI y sincronización.
Pruebas comparativas recientes muestran ya un rendimiento con drivers abiertos que empieza a ser tomado en serio, incluso frente al driver propietario en algunos escenarios. Se han hecho comparaciones con tarjetas como la GTX 980, pasando por generaciones intermedias, y enfrentándolas incluso a hardware AMD actual. Aunque todavía hay hueco de mejora, se nota que la brecha se estrecha y que, para muchos usuarios de Linux, el driver abierto o bien ya es suficiente, o está muy cerca de serlo.
PanVK y Panfrost: Vulkan en ARM, AFBC y mejoras de caché
Por el lado de las GPUs ARM (Mali), la familia Panfrost / PanVK recibe un torrente enorme de trabajo en Mesa 26.0. Empezando por PanVK, se añade soporte para:
- VK_EXT_image_drm_format_modifier en v7, crucial para integrar mejor con DRM y manejar formatos con modificadores (AFBC, tiling especiales, etc.).
- VK_KHR_sampler_ycbcr_conversion en v7, habilitando el uso de texturas YUV y flujos de vídeo más complejos.
- VK_EXT_multisampled_render_to_single_sampled, de forma similar a Turnip (Qualcomm), permitiendo renderizado multisampleado directo a texturas de una sola muestra.
- Soporte de imágenes dispersas (sparseResidencyImage2D y sparseResidencyStandard2DBlockShape) en v10+, con toda la infraestructura para binds parciales, alineamiento de filas/capas y consultas específicas de sparse residency.
- VK_KHR_pipeline_binary y un sistema de caché en memoria y en disco, que reduce el coste de recompilar shaders y pipelines al volver a ejecutar juegos o aplicaciones.
Por su parte, Panfrost suma compatibilidad con nuevos formatos AFBC (incluyendo 16 bits y 4:2:2), añade formatos como R16G16_R16B16_UNORM, expone más texel buffers (incluyendo formatos de tres componentes) y refina el cálculo del tamaño de tile buffer. También se introducen intrínsecos de pixel local storage (PLS) y se implementa GL_EXT_shader_pixel_local_storage en Panfrost v6+, permitiendo guardar y recuperar datos a nivel de píxel sin tener que ir a memoria principal, lo que es muy interesante para ciertos efectos avanzados.
En el compilador Bifrost (pan/bi) se ve una reestructuración profunda: vectorización de instrucciones de 8 bits, mejoras en el manejo de phis vectoriales, traslado de muchas pasadas NIR a una especie de «postprocess» unificado, y una separación clara del compilador en una librería común libpanfrost_compiler. Todo esto no solo mejora el rendimiento, sino que también facilita el mantenimiento y la incorporación de nuevas arquitecturas como v12+.
Venus, HoneyKrisp y otros drivers especiales
Mesa 26.0 también viene cargada de mejoras para drivers menos conocidos pero muy relevantes en entornos concretos. Venus, el driver Vulkan de traducción para usar Vulkan sobre virtio-gpu (muy usado en entornos virtualizados y contenedores), gana soporte para:
- VK_KHR_cooperative_matrix, VK_KHR_shader_bfloat16, VK_EXT_shader_float8 y VK_EXT_shader_uniform_buffer_unsized_array, alineándose con capacidades modernas de cómputo y ML.
- VK_EXT_mesh_shader, lo que permite ejecutar mesh/task shaders dentro de entornos virtualizados, algo que hace unos años sonaba casi a ciencia ficción.
- Asincronía en la presentación (async present), soporte de colas sparse-only, mejores integraciones con present wait/present id y afinado del manejo de dmabufs, blobs AHB y sincronización implícita.
El driver HoneyKrisp (HK), que proporciona Vulkan sobre Metal en entornos Apple, recibe un aluvión de cambios: se corrigen propiedades de dot product entero, se añade soporte para VK_KHR_present_id/present_id2 y VK_KHR_present_wait/present_wait2, se anuncia VK_EXT_shader_uniform_buffer_unsized_array, se habilita VK_KHR_pipeline_binary y se ajustan detalles de host image copy y compatibilidad con HIC en formatos ASTC, entre muchos otros cambios menores.
Otros drivers como PowerVR (pvr), v3dv/v3d (Raspberry Pi), Virtio/Virgl, Lavapipe (Vulkan por CPU) y D3D12/Dozen reciben también una lluvia de correcciones, limpieza de código y nuevas extensiones (por ejemplo, VK_KHR_relaxed_block_layout y VK_KHR_storage_buffer_storage_class en pvr, o VK_EXT_blend_operation_advanced y VK_EXT_frame_boundary en gfxstream).
Mejoras en OpenGL, Gallium y compiladores (NIR, ACO, etc.)
Aunque toda la atención se la lleve Vulkan, Mesa 26.0 también incorpora un gran número de mejoras en OpenGL, Gallium y el compilador NIR. Se reestructuran múltiples pasadas de optimización (constant folding, algebraic, copy-prop, DCE, CSE), se consolidan las banderas de fp_math_control por instrucción (incluyendo el tratamiento correcto de ceros con signo, NaNs e infinitos), y se limpia el uso de passes redundantes en drivers como RADV, Radeonsi, Intel o Broadcom.
En NIR se introducen nuevos intrínsecos como pixel local storage, nuevos opcodes de conversión flotante (f2f16_ru/rd), helpers de uniform subgroup, tratamiento más robusto de comportamiento indefinido (por ejemplo, en bitfield_extract, divisiones enteras y saturaciones), y una gran batería de utilidades para análisis de lazo, difusiones, divergencia y vectores. También se potencia el sistema de tests unitarios automáticos para patrones algebraicos, generando tests a partir de las definiciones de nir_opt_algebraic.
Los compiladores por backend, como ACO (AMD) y el backend Intel, recogen todo este trabajo y lo aprovechan para producir shaders más cortos, con mejor pipeline de instrucciones y mejor uso de registros. Se afinan passes de RA (register allocation), manejo de llamadas (novedad gorda en ACO con soporte consistente de function calls y spilling de registros preservados), distribución de latencias y uso de instrucciones mixtas (fma_mix16 con distintos modos de redondeo, etc.).
Entorno de pruebas, CI y estabilidad
Un aspecto menos vistoso, pero crítico, es el enorme trabajo en infraestructura de pruebas continuas (CI). Mesa 26.0 viene respaldada por una actualización de contenedores CI, kernels de pruebas (por ejemplo Linux 6.17.3 y posteriores), integración con farms como ci-tron, mupuf, broadcom, freedreno, Valve, etc., así como una actualización coordinada de suites de test: VKCTS, GL/GLES CTS, Piglit, ANGLE y vkd3d, entre otras.
Se ajustan listas de xfails, se documentan flakes conocidos, se expanden las matrices de hardware (desde Raspberry Pi hasta GPUs AMD GFX12, pasando por Adreno A750 y Mali G52/G610/G720, e incluso backends por CPU como Lavapipe). Todo ello se refleja en los changelogs con montones de commits marcando pruebas arregladas, tests ahora estables o nuevos trabajos nocturnos que cubren escenarios antes no testados.
También se refuerzan herramientas como perfetto, pps, u_trace y las distintas integraciones de medición para Intel, AMD y otros vendors, lo que a la larga repercute en encontrar y pulir cuellos de botella cada vez más sutiles.
En conjunto, Mesa 26.0 no solo trae una lista interminable de extensiones nuevas y cambios internos, sino que consolida la tendencia de los últimos años: drivers abiertos cada vez más capaces, mejoras constantes en Vulkan y OpenGL, optimizaciones de ray tracing en AMD que ya se notan en juegos reales, progresos muy tangibles en el stack abierto de NVIDIA (NVK/Nouveau) y un empujón importante a plataformas menos tradicionales como ARM, virtualización o macOS vía Metal. Para quienes usan Linux a diario para jugar o trabajar con gráficos intensivos, esta versión es una de esas actualizaciones que merece la pena instalar y probar con calma, sabiendo que el trabajo sigue avanzando versión tras versión.
