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

Después de tres meses de desarrollo, se publicó el lanzamiento de una implementación gratuita de OpenGL y Vulkan API: Mesa 21.2.0. La primera versión de la rama Mesa 21.2.0 tiene un estado experimental: después de la estabilización final del código, se lanzará una versión estable 21.2.1.

Mesa 21.2 incluye soporte completo para OpenGL 4.6 para los controladores 965, iris (Intel), radeonsi (AMD), zink y llvmpipe. La compatibilidad con OpenGL 4.5 está disponible para las GPU AMD (r600) y NVIDIA (nvc0), y la compatibilidad con OpenGL 4.3 para virgl (GPU virtual Virgil3D para QEMU/KVM). La compatibilidad con Vulkan 1.2 está disponible para tarjetas Intel y AMD, así como en modo emulador (vn), la compatibilidad con Vulkan 1.1 está disponible para las GPU Qualcomm y el rasterizador de software lavapipe, y Vulkan 1.0 está disponible para las GPU Broadcom VideoCore VI (Raspberry Pi 4) .

Principales novedades:

  • El controlador asahi OpenGL se incluye con soporte inicial para la GPU incluida en los chips Apple M1. El controlador utiliza la interfaz Gallium y admite la mayoría de las funciones de OpenGL 2.1 y OpenGL ES 2.0, pero aún no es adecuado para ejecutar la mayoría de los juegos. El código del controlador se basa en el controlador noop de referencia de Gallium, con parte del código transferido del controlador Panfrost que se está desarrollando para la GPU ARM Mali.
  • El controlador Crocus OpenGL se incluye con soporte para GPU Intel más antiguas (basadas en microarquitecturas Gen4-Gen7), que no son compatibles con el controlador Iris. A diferencia del controlador i965, el nuevo controlador se basa en la arquitectura Gallium3D, que subcontrata las tareas de administración de memoria al controlador DRI en el kernel de Linux y proporciona un rastreador de estado listo para usar con soporte para una caché de reutilización de objetos de salida.
  • Se incluye el controlador PanVk, que brinda soporte para la API de gráficos Vulkan para GPU ARM Mali Midgard y Bifrost. PanVk está siendo desarrollado por empleados de Collabora y se posiciona como una continuación del desarrollo del proyecto Panfrost, que brinda soporte para OpenGL.
  • El controlador Panfrost para GPU Midgard (Mali T760 y posteriores) y GPU Bifrost (Mali G31, G52, G76) es compatible con OpenGL ES 3.1. Los planes futuros incluyen trabajar para aumentar el rendimiento de los chips Bifrost y la implementación de soporte de GPU basado en la arquitectura Valhall (Mali G77 y posteriores).
  • Las compilaciones x32 de 86 bits utilizan instrucciones sse87 en lugar de instrucciones x2 para cálculos matemáticos.
  • El controlador Nouveau nv50 para la GPU NVIDIA GT21x (GeForce GT 2×0) es compatible con OpenGL ES 3.1.
  • El controlador Vulkan TURNIP y el controlador OpenGL Freedreno, desarrollados para la GPU Qualcomm Adreno, tienen soporte inicial para la GPU Adreno a6xx gen4 (a660, a635).
  • El controlador RADV (AMD) Vulkan ha agregado soporte para selección primitiva utilizando motores de sombreado NGG (Next-Gen Geometry). Se ha implementado la capacidad de crear el controlador RADV en la plataforma Windows utilizando el compilador MSVC.
  • Se ha llevado a cabo un trabajo preparatorio en el controlador ANV Vulkan (Intel) y el controlador Iris OpenGL para brindar soporte para las próximas tarjetas gráficas Intel Xe-HPG (DG2). Esto incluye funciones iniciales relacionadas con el trazado de rayos y compatibilidad con sombreadores de trazado de rayos.
  • El controlador lavapipe, que implementa un rasterizador de software para la API de Vulkan (análogo a llvmpipe, pero para Vulkan, que traduce las llamadas de la API de Vulkan a la API de Gallium), admite el modo "wideLines" (brinda soporte para líneas con un ancho superior a 1.0).
  • Se ha implementado soporte para el descubrimiento dinámico y la carga de backends GBM (Generic Buffer Manager) alternativos. El cambio tiene como objetivo mejorar la compatibilidad con Wayland en sistemas con controladores NVIDIA.
  • El controlador Zink (una implementación de la API OpenGL sobre Vulkan, que le permite obtener OpenGL acelerado por hardware si el sistema tiene controladores limitados a admitir solo la API Vulkan) admite extensiones OpenGL GL_ARB_sample_locations, GL_ARB_sparse_buffer, GL_ARB_shader_group_vote, GL_ARB_texture_filter_minmax y GL_ARB_shader_clock. Se agregaron modificadores de formato DRM (Direct Rendering Manager, extensión VK_EXT_image_drm_format_modifier habilitada).
  • Se agregó soporte para extensiones a los controladores Vulkan RADV (AMD), ANV (Intel) y lavapipe:
    • VK_EXT_provoking_vertex (RADV);
    • VK_EXT_extended_dynamic_state2 (RADV);
    • VK_EXT_global_priority_query (RADV);
    • VK_EXT_physical_device_drm (RADV);
    • VK_KHR_shader_subgroup_uniform_control_flow (RADV, ANV);
    • VK_EXT_color_write_enable (RADV);
    • VK_EXT_acquire_drm_display (RADV, ANV);
    • VK_EXT_vertex_input_dynamic_state(lavapipe);
    • VK_EXT_line_rasterization(lavapipe);
    • VK_EXT_multi_draw(ANV, lavapipe, RADV);
    • VK_KHR_separate_profundidad_stencil_layouts(tubo de lava);
    • VK_EXT_separate_stencil_usage(tubo de lava);
    • VK_EXT_extended_dynamic_state2 (pipa de lava).

Fuente: opennet.ru

Añadir un comentario