Lanzamiento de Mesa 21.0, una implementación gratuita de OpenGL y Vulkan

Se presenta el lanzamiento de la implementación gratuita de las API OpenGL y Vulkan - Mesa 21.0.0. La primera versión de la rama Mesa 21.0.0 tiene un estado experimental: después de la estabilización final del código, se lanzará una versión estable 21.0.1. Mesa 21.0 tiene compatibilidad completa con OpenGL 4.6 para los controladores 965, iris (Intel), radeonsi (AMD), zink y llvmpipe. La compatibilidad con OpenGL 4.5 está disponible para GPU AMD (r600) y NVIDIA (nvc0), y OpenGL 4.3 para virgl (GPU virtual Virgil3D para QEMU/KVM). Vulkan 1.2 es compatible con tarjetas Intel y AMD, y Vulkan 1.0 para VideoCore VI (Raspberry Pi 4).

Principales novedades:

  • El controlador Zink (una implementación de la API de OpenGL sobre Vulkan) brinda soporte para OpenGL 4.6. Zink le permite obtener OpenGL acelerado por hardware si tiene controladores en su sistema que se limitan a admitir solo la API de Vulkan. El rendimiento de Zink es similar al de las implementaciones nativas de OpenGL.
  • El controlador llvmpipe, diseñado para la representación de software, es compatible con OpenGL 4.6.
  • El controlador Freedreno, utilizado para el subsistema de gráficos Qualcomm, es compatible con OpenGL ES 6 para la GPU Adreno a3.0xx.
  • El controlador Panfrost para GPU Midgard (Mali-T7xx, Mali-T8xx) y Bifrost (Mali G3x, G5x, G7x) es compatible con OpenGL 3.1, así como con OpenGL ES 3.0 para GPU Bifrost.
  • El controlador radeonsi es compatible con las extensiones de OpenGL GL_EXT_demote_to_helper_invocation y GL_NV_compute_shader_derivatives. Para el juego "Counter-Strike: Global Offensive", el modo de optimización "mesa_glthread" está habilitado de forma predeterminada, lo que permite aumentar el rendimiento en un 10-20%. Se implementaron optimizaciones que afectan la aprobación de las pruebas SPECViewPerf. Se agregó soporte para la herramienta de generación de perfiles Radeon GPU Profiler (RGP). Se agregó soporte para la tecnología Smart Access Memory para las GPU Zen 3 y RDNA 2. Se agregó soporte para codificadores HEVC SAO (Sample Adaptive Offset, para GPU compatibles con motores VCN2, VCN2.5 y VCN3) y decodificadores AV1 (para RDNA 2/RX 6000 y solo a través de la interfaz OpenMAX).
  • El controlador RADV Vulkan (para tarjetas AMD) agrega soporte para matemáticas empaquetadas rápidas (vectorización de 16 bits) y memoria dispersa (le permite diseñar recursos como imágenes y texturas de manera inconsistente y volver a adjuntarlos a diferentes asignaciones de memoria). Rendimiento optimizado para las tarjetas de la serie RX 6000. Se agregaron las extensiones VK_VALVE_mutable_descriptor_type y VK_KHR_fragment_shading_rate (solo RDNA2).
  • Los controladores Intel ANV e Iris agregan optimizaciones de rendimiento y ofrecen soporte inicial para las extensiones de trazado de rayos Vulkan implementadas en las tarjetas gráficas Xe HPG.
  • Se agregó soporte para la extensión EGL_MESA_platform_xcb, que permite que las aplicaciones creen recursos EGL a partir de recursos X11 sin usar Xlib.
  • El controlador Vulkan V3DV, desarrollado para el acelerador de gráficos VideoCore VI utilizado en las placas Raspberry Pi 4 basadas en el chip Broadcom BCM2711, ha agregado soporte para Wayland WSI (Windowing System Integration), que permite acceder a la API de Vulkan desde entornos basados ​​en Wayland.
  • La implementación inicial de la capa que traduce las llamadas OpenGL a la API de DirectX 12 se adoptó para organizar el trabajo de las aplicaciones gráficas en el entorno WSL (Windows Subsystem for Linux). Además, se incluye la biblioteca spirv_to_dxil para convertir la representación intermedia de los sombreadores SPIR-V a DXIL (DirectX Intermediate Language) desarrollada por Microsoft.
  • Soporte rediseñado y significativamente mejorado para Haiku OS.
  • Se eliminaron las configuraciones glx_disable_oml_sync_control, glx_disable_sgi_video_sync y glx_disable_ext_buffer_age de driconf.
  • Se eliminó la compatibilidad con DRI1 y se dejó de cargar controladores DRI de versiones de Mesa anteriores a la 8.0.
  • Se eliminó el controlador swrast, construido sobre la base de la interfaz DRI clásica y destinado a la representación de software OpenGL (los controladores de representación de software restantes llvmpipe y softpipe están notablemente por delante de swrast en términos de rendimiento y funcionalidad). La eliminación de swrast se vio facilitada por la presencia de muchos problemas no resueltos y la aparición de regresiones, a pesar de que este controlador ya no se utiliza en las distribuciones.
  • Se eliminó la versión clásica anterior de la API de OSMesa (dejada por OSMesa basada en Gallium), que permite renderizar no en la pantalla, sino en un búfer en memoria.

    Fuente: opennet.ru

Añadir un comentario