Lançamento do Mesa 21.2, uma implementação gratuita de OpenGL e Vulkan

Após três meses de desenvolvimento, foi publicado o lançamento de uma implementação gratuita da API OpenGL e Vulkan - Mesa 21.2.0. O primeiro lançamento do branch Mesa 21.2.0 tem status experimental - após a estabilização final do código, uma versão estável 21.2.1 será lançada.

Mesa 21.2 inclui suporte completo para OpenGL 4.6 para drivers 965, iris (Intel), radeonsi (AMD), zink e llvmpipe. O suporte OpenGL 4.5 está disponível para GPUs AMD (r600) e NVIDIA (nvc0), e suporte OpenGL 4.3 para virgl (GPU virtual Virgil3D para QEMU/KVM). O suporte Vulkan 1.2 está disponível para placas Intel e AMD, bem como no modo emulador (vn), o suporte Vulkan 1.1 está disponível para GPUs Qualcomm e o rasterizador de software lavapipe, e Vulkan 1.0 está disponível para GPUs Broadcom VideoCore VI (Raspberry Pi 4) .

Principais inovações:

  • O driver asahi OpenGL está incluído no suporte inicial para a GPU incluída nos chips Apple M1. O driver usa a interface Gallium e suporta a maioria dos recursos do OpenGL 2.1 e OpenGL ES 2.0, mas ainda não é adequado para rodar a maioria dos jogos. O código do driver é baseado no driver noop de referência Gallium, com algum código portado do driver Panfrost sendo desenvolvido para a GPU ARM Mali.
  • O driver Crocus OpenGL está incluído com suporte para GPUs Intel mais antigas (baseadas em microarquiteturas Gen4-Gen7), que não são suportadas pelo driver Iris. Ao contrário do driver i965, o novo driver é baseado na arquitetura Gallium3D, que terceiriza tarefas de gerenciamento de memória para o driver DRI no kernel Linux e fornece um rastreador de estado pronto para uso com suporte para um cache de reutilização de objetos de saída.
  • O driver PanVk está incluído, fornecendo suporte para a API gráfica Vulkan para GPUs ARM Mali Midgard e Bifrost. O PanVk está sendo desenvolvido por funcionários da Collabora e se posiciona como uma continuação do desenvolvimento do projeto Panfrost, que dá suporte ao OpenGL.
  • O driver Panfrost para GPUs Midgard (Mali T760 e mais recentes) e GPUs Bifrost (Mali G31, G52, G76) suporta OpenGL ES 3.1. Os planos futuros incluem trabalho para aumentar o desempenho dos chips Bifrost e a implementação de suporte GPU baseado na arquitetura Valhall (Mali G77 e mais recente).
  • As compilações x32 de 86 bits usam instruções sse87 em vez de instruções x2 para cálculos matemáticos.
  • O driver Nouveau nv50 para a GPU NVIDIA GT21x (GeForce GT 2×0) suporta OpenGL ES 3.1.
  • O driver Vulkan TURNIP e o driver OpenGL Freedreno, desenvolvidos para a GPU Qualcomm Adreno, têm suporte inicial para a GPU Adreno a6xx gen4 (a660, a635).
  • O driver RADV (AMD) Vulkan adicionou suporte para seleção primitiva usando mecanismos de shader NGG (Next-Gen Geometry). A capacidade de construir o driver RADV na plataforma Windows usando o compilador MSVC foi implementada.
  • O trabalho preparatório foi realizado no driver ANV Vulkan (Intel) e no driver Iris OpenGL para fornecer suporte para as próximas placas gráficas Intel Xe-HPG (DG2). Isso inclui recursos iniciais relacionados ao ray tracing e suporte para sombreadores de ray tracing.
  • O driver lavapipe, que implementa um rasterizador de software para a API Vulkan (análogo ao llvmpipe, mas para Vulkan, traduzindo chamadas de API Vulkan para a API Gallium), suporta o modo “wideLines” (fornece suporte para linhas com largura superior a 1.0).
  • Foi implementado suporte para descoberta dinâmica e carregamento de backends GBM (Generic Buffer Manager) alternativos. A mudança visa melhorar o suporte ao Wayland em sistemas com drivers NVIDIA.
  • O driver Zink (uma implementação da API OpenGL no topo do Vulkan, que permite obter OpenGL acelerado por hardware se o sistema tiver drivers limitados a suportar apenas a API Vulkan) suporta extensões OpenGL GL_ARB_sample_locations, GL_ARB_sparse_buffer, GL_ARB_shader_group_vote, GL_ARB_texture_filter_minmax e GL_ARB_shader_clock. Adicionados modificadores de formato DRM (Direct Rendering Manager, extensão VK_EXT_image_drm_format_modifier habilitada).
  • Foi adicionado suporte para extensões aos drivers Vulkan RADV (AMD), ANV (Intel) e 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, tubo de lava, RADV);
    • VK_KHR_separate_profundidade_stencil_layouts(lavapipe);
    • VK_EXT_separate_stencil_usage(lavapipe);
    • VK_EXT_extended_dynamic_state2 (lavapipe).

Fonte: opennet.ru

Adicionar um comentário