Lanzamento de Mesa 21.2, unha implementación gratuíta de OpenGL e Vulkan

Despois de tres meses de desenvolvemento, publicouse o lanzamento dunha implementación gratuíta da API OpenGL e Vulkan - Mesa 21.2.0. A primeira versión da rama Mesa 21.2.0 ten un estado experimental: despois da estabilización final do código, lanzarase unha versión estable 21.2.1.

Mesa 21.2 inclúe soporte completo para OpenGL 4.6 para os controladores 965, iris (Intel), radeonsi (AMD), zink e llvmpipe. A compatibilidade con OpenGL 4.5 está dispoñible para as GPU AMD (r600) e NVIDIA (nvc0), e con OpenGL 4.3 para virgl (GPU virtual Virgil3D para QEMU/KVM). O soporte Vulkan 1.2 está dispoñible para tarxetas Intel e AMD, así como no modo emulador (vn), o soporte Vulkan 1.1 está dispoñible para as GPU Qualcomm e o rasterizador de software lavapipe, e Vulkan 1.0 está dispoñible para as GPU Broadcom VideoCore VI (Raspberry Pi 4). .

Principais novidades:

  • O controlador asahi OpenGL inclúese co soporte inicial para a GPU incluída nos chips Apple M1. O controlador usa a interface Gallium e admite a maioría das funcións de OpenGL 2.1 e OpenGL ES 2.0, pero aínda non é axeitado para executar a maioría dos xogos. O código do controlador baséase no controlador noop de referencia Gallium, con algún código transferido do controlador Panfrost que se está a desenvolver para a GPU ARM Mali.
  • O controlador Crocus OpenGL inclúese co soporte para as GPU Intel máis antigas (baseadas en microarquitecturas Gen4-Gen7), que non son compatibles co controlador Iris. A diferenza do controlador i965, o novo controlador baséase na arquitectura Gallium3D, que subcontrata tarefas de xestión de memoria ao controlador DRI no núcleo de Linux e proporciona un rastreador de estado preparado con soporte para unha caché de reutilización de obxectos de saída.
  • Inclúese o controlador PanVk, que ofrece soporte para a API de gráficos Vulkan para as GPU ARM Mali Midgard e Bifrost. PanVk está a ser desenvolvido polos empregados de Collabora e sitúase como unha continuación do desenvolvemento do proxecto Panfrost, que ofrece soporte para OpenGL.
  • O controlador Panfrost para GPU Midgard (Mali T760 e máis recentes) e GPU Bifrost (Mali G31, G52, G76) admite OpenGL ES 3.1. Os plans futuros inclúen o traballo para aumentar o rendemento nos chips Bifrost e a implementación de compatibilidade con GPU baseada na arquitectura Valhall (Mali G77 e máis recentes).
  • As compilacións x32 de 86 bits usan instrucións sse87 en lugar de instrucións x2 para os cálculos matemáticos.
  • O controlador Nouveau nv50 para a GPU NVIDIA GT21x (GeForce GT 2×0) admite OpenGL ES 3.1.
  • O controlador Vulkan TURNIP e o controlador OpenGL Freedreno, desenvolvidos para a GPU Qualcomm Adreno, teñen soporte inicial para a GPU Adreno a6xx gen4 (a660, a635).
  • O controlador Vulkan RADV (AMD) engadiu soporte para a eliminación primitiva mediante motores de sombreado NGG (Next-Gen Geometry). Implementouse a capacidade de construír o controlador RADV na plataforma Windows usando o compilador MSVC.
  • Realizouse un traballo preparatorio no controlador ANV Vulkan (Intel) e no controlador Iris OpenGL para ofrecer soporte ás próximas tarxetas gráficas Intel Xe-HPG (DG2). Isto inclúe características iniciais relacionadas co trazado de raios e compatibilidade con sombreadores de trazado de raios.
  • O controlador lavapipe, que implementa un rasterizador de software para a API de Vulkan (análogo a llvmpipe, pero para Vulkan, que traduce as chamadas da API de Vulkan á API de Gallium), admite o modo "wideLines" (ofrece soporte para liñas cun ancho superior a 1.0).
  • Implementouse o soporte para o descubrimento dinámico e a carga de backends alternativos de GBM (Xestor de búfer xenérico). O cambio ten como obxectivo mellorar a compatibilidade de Wayland nos sistemas con controladores NVIDIA.
  • O controlador de Zink (unha implementación da API de OpenGL enriba de Vulkan, que lle permite obter OpenGL acelerado por hardware se o sistema ten controladores limitados a admitir só a API de Vulkan) admite extensións OpenGL GL_ARB_sample_locations, GL_ARB_sparse_buffer, GL_ARB_shader_group_vote, GL_ARB_ARB_max_text e GL_ARB_AR_minure. Engadíronse modificadores de formato DRM (Direct Rendering Manager, extensión VK_EXT_image_drm_format_modifier activada).
  • Engadiuse soporte para extensións aos controladores Vulkan RADV (AMD), ANV (Intel) e lavapipe:
    • VK_EXT_provoking_vertex (RADV);
    • VK_EXT_estado_dinámico_estendido2 (RADV);
    • VK_EXT_consulta_de_prioridade_global (RADV);
    • VK_EXT_dispositivo_físico_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_diseños_de_estencils_de_profundidade_separados(lavapipe);
    • VK_EXT_separate_stencil_usage(lavapipe);
    • VK_EXT_extended_dynamic_state2 (lavapipe).

Fonte: opennet.ru

Engadir un comentario