Mesa 22.3.0 llega con mejoras para sombreadores, extensiones y mas
Hace poco se dio a conocer el lanzamiento de la nueva versión de la implementación de la API OpenGL y Vulkan «Mesa 22.3.0», siendo esta la primera versión de la rama Mesa 22.3.0 que tiene un estado experimental y que posteriormente (después de la estabilización final del código), se lanzará una versión estable 22.3.1.
En Mesa 22.3, la compatibilidad con la API de gráficos Vulkan 1.3 está disponible en anv para GPU Intel, radv para GPU AMD y en modo emulador (vn). La compatibilidad con Vulkan 1.1 se implementa en el rasterizador de software lavapipe (lvp) y Vulkan 1.0 en el controlador v3dv (GPU Broadcom VideoCore VI de Raspberry Pi 4).
Principales novedades de Mesa 22.3.0
En esta nueva versión que se presenta se añadió el controlador freedreno para las GPU Qualcomm Adreno es compatible con la API de gráficos OpenGL 4.5 y el controlador del emulador (vn) es compatible con la API Vulkan 1.3.
Otro de los cambios que se destaca de esta nueva versión es que se agregó soporte para GPU GFX11/RDNA3 (serie Radeon RX 7000) en RADV (AMD) Vulkan Driver, ademas de que se agregó compatibilidad con los formatos de píxeles R8G8B8, B8G8R8 y R16G16B16, así como con los formatos de búfer de vértice de 64 bits.
Tambien podremos encontrar que en Mesa 22.3.0 el controlador Rusticl se incluye con la implementación de la especificación OpenCL 3.0, que define la API y las extensiones del lenguaje C para organizar la computación paralela multiplataforma. El controlador está escrito en Rust, desarrollado utilizando la interfaz Gallium proporcionada en Mesa y actúa como un análogo de la interfaz Clover OpenCL presente en Mesa.
Clover lleva mucho tiempo en estado de abandono y rusticl se posiciona como su futuro reemplazo. La compatibilidad con Rust y Rusticl está deshabilitada de forma predeterminada y requiere compilación con opciones explícitas «-D gallium-rusticl=true -Dllvm=enabled -Drust_std=2021«. Cabe mencionar que al compilar, se requieren el compilador rustc, bindgen, LLVM, SPIRV-Tools y SPIRV-LLVM-Translator como dependencias adicionales.
Ademas de ello, el controlador RadeonSI tiene soporte para renderizado de subprocesos múltiples a través de OpenGL habilitado de forma predeterminada, mientras que el controlador Panfrost implementa la capacidad de almacenar en caché los sombreadores en el disco y agrega soporte para la GPU Mali T620.
De los demás cambios que se destacan en Mesa 22.3.0:
- Se presenta Mesa-DB, un nuevo tipo de caché de sombreado que almacena datos en un solo archivo.
- El controlador es compatible con la especificación OpenGL 3.1 y OpenGL ES 3.1.
- El código para el trazado de rayos se ha optimizado.
- Se agregó soporte para el indicador extendedDynamicState2PatchControlPoints, que define el soporte para la extensión VK_EXT_extended_dynamic_state2.
- Analizador de trazado de rayos Radeon integrado.
- Se agregó soporte para extensiones OpenGL: GL_ARB_shader_clock para llvmpipe, GL_KHR_blend_equation_advanced_coherent para zinc, GL_NV_shader_atomic_float para llvmpipe.
- Se agregó soporte para las extensiones de Vulkan: VK_KHR_shader_clock para lavapipe, VK_EXT_attachment_feedback_loop_layout para RADV, lavapipe, VK_KHR_global_priority para RADV, VK_EXT_load_store_op_none para RADV, VK_EXT_mutable_descriptor_type para RADV, VK_EXT_shader_atomic_float para lvp, VK_EXT_shader_atomic_float2 para lvp, VK_EXT_image_robustness para v3dv., VK_EXT_extended_dynamic_state3 para lavapipe, RADV y ANV, VK_EXT_extended_dynamic_state2 para RADV.
Finalmente si estás interesado en conocer más al respecto sobre esta nueva versión de los controladores Mesa, puedes consultar los detalles en el siguiente enlace.
¿Cómo instalar los drivers de video Mesa en Linux?
Los paquetes de Mesa se encuentran en todas las distribuciones de Linux, por lo que su instalación puede realizarse ya sea descargando y compilando el código fuente (toda la información al respecto aquí) o de una forma relativamente sencilla, la cual depende de la disponibilidad dentro de los canales oficiales de tu distribución o de terceros.
Para los que son usuarios de Ubuntu, Linux Mint y derivados pueden añadir el siguiente repositorio en donde los controladores son actualizados de manera rápida.
sudo add-apt-repository ppa:kisak/kisak-mesa -y
Ahora vamos a actualizar nuestro listado de paquetes y repositorios con:
sudo apt update
Y finalmente podemos instalar los drivers con:
sudo apt upgrade
Para el caso de los que son usuarios de Arch Linux y derivados estos los instalamos con el siguiente comando:
sudo pacman -S mesa mesa-demos mesa-libgl lib32-mesa lib32-mesa-libgl
Para quienes sean usuarios de Fedora 32 pueden utilizar este repositorio, por lo que deben de habilitar corp con:
sudo dnf copr enable grigorig/mesa-stable sudo dnf update
Finalmente, para los que son usuarios de openSUSE, pueden instalar o actualizar tecleando:
sudo zypper in mesa