Se ha publicado el lanzamiento de la implementación libre de la API OpenGL y Vulkan — Mesa 24.1.0. La primera versión de la rama Mesa 24.1.0 tiene un estatus experimental — después de la estabilización final del código, se lanzará una versión estable 24.1.1.
Mesa 24.0 ofrece soporte para la API gráfica Vulkan 1.3 en los controladores anv para GPU Intel, radv para GPU AMD, NVK para GPU NVIDIA, tu para GPU Qualcomm, en el rasterizador por software lavapipe (lvp) y en modo emulador (vn). El soporte para Vulkan 1.0 está implementado en los controladores v3dv (GPU Broadcom VideoCore VI de Raspberry Pi 4) y dzn (implementación de Vulkan sobre Direct3D 12).
Mesa también proporciona soporte completo para OpenGL 4.6 para los controladores iris (GPU Intel Gen 8+), radeonsi (AMD), Crocus (GPU Intel Gen4-Gen7 antiguas), zink, llvmpipe, virgl (GPU virtual Virgil3D para QEMU/KVM), freedreno (Qualcomm Adreno), d3d12 (capa para ejecutar OpenGL sobre DirectX 12) y asahi (GPU AGX utilizado en los chips Apple M1 y M2). El soporte para OpenGL 4.5 está disponible para GPU AMD (r600) y NVIDIA (nvc0). El soporte para OpenGL 3.3 está presente en los controladores softpipe (rasterizador por software) y nv50 (NVIDIA NV50).
Novedades principales:
- En el controlador asahi, desarrollado para la GPU AGX utilizada en los chips ARM de Apple, se ha asegurado soporte para OpenGL 4.6 y OpenGL ES 3.2.
- Se ha mejorado significativamente el rendimiento del controlador NVK para GPU NVIDIA basadas en las microarquitecturas Turing (series GeForce GTX 16xx, RTX 20xx y Quadro RTX), Ampere (series GeForce RTX 30xx y RTX A2000/4000/5000/6000) y Ada (series GeForce RTX 4xxx, RTX 4000 SFF, RTX 4xxx/5000/6000 Ada). El controlador ha sido declarado listo para el uso diario por una amplia gama de usuarios. El soporte de Vulkan 1.3 en NVK está certificado por el consorcio Khronos. Se ha mejorado la funcionalidad sobre la capa NVK de DXVK, que proporciona una implementación de Direct3D 9, 10 y 11.
- Se ha añadido un cambio que permite activar el controlador Zink (implementación de OpenGL sobre Vulkan) para proporcionar soporte para OpenGL 4.6 en sistemas con nuevas series de tarjetas gráficas NVIDIA (a partir de GeForce RTX 20xx), donde pueden presentarse problemas en el controlador OpenGL por defecto Nouveau (NVC0). Para habilitar Zink en lugar de NVC0, debe establecerse la variable de entorno "NOUVEAU_USE_ZINK=1".
- En el controlador Panfrost se ha añadido soporte para GPU Mali G610, Mali G310 y Mali T600.
- Todos los controladores Vulkan implementan soporte para sincronización explícita (Explicit Sync) para Wayland y X11. La sincronización explícita permite que las aplicaciones informen al gestor de composiciones sobre la disponibilidad de un cuadro para mostrarse en pantalla, lo que reduce los retrasos y elimina artefactos en la salida gráfica.
- Se han expandido las capacidades del controlador d3d12, que proporciona una capa con la implementación de OpenGL sobre DirectX 12.
- En el controlador V3DV, desarrollado para GPU Broadcom VideoCore (que se utiliza en las placas Raspberry Pi), se ha añadido soporte para el renderizado dinámico.
- El controlador Vulkan ANV (Intel) se ha actualizado para utilizar operaciones asíncronas de mapeo de memoria de video (Asynchronous VM_BIND). Para las GPU basadas en la arquitectura Intel Xe, que se utiliza en las tarjetas gráficas Intel de la familia Arc y en gráficos integrados a partir de los procesadores Tiger Lake, se ha añadido la posibilidad de restablecer volcado de estado para la depuración de bloqueos del GPU. Se ha realizado la preparación para el soporte de chips de GPU Intel LunarLake (Xe 2).
- Se ha añadido soporte para nuevas extensiones de Vulkan:
- VK_EXT_map_memory_placed para los controladores RADV, ANV y NVK
- VK_KHR_shader_subgroup_rotate para RADV, ANV y NVK
- VK_KHR_load_store_op_none para RADV, ANV, NVK y Turnip
- VK_KHR_line_rasterization para RADV, ANV, NVK y Turnip
- VK_KHR_index_type_uint8 para RADV, ANV, NVK y Turnip
- VK_KHR_shader_expect_assume para todos los controladores Vulkan
- VK_KHR_shader_maximal_reconvergence para RADV, ANV y NVK
- VK_KHR_shader_quad_control para RADV
- VK_KHR_shader_subgroup_uniform_control_flow para NVK
- VK_EXT_device_address_binding_report para RADV
- VK_EXT_external_memory_dma_buf para lavapipe
- VK_EXT_queue_family_foreign para lavapipe
- VK_EXT_shader_object para RADV
- VK_EXT_nested_command_buffer para NVK y RADV
- VK_EXT_queue_family_foreign para NVK
- VK_EXT_image_drm_format_modifier para NVK
Fuente: opennet.ru
