Foi lançado o release da implementação livre da API OpenGL e Vulkan — Mesa 24.1.0. A primeira versão do ramo Mesa 24.1.0 tem status experimental — uma versão estável 24.1.1 será lançada após a estabilização final do código.
Na Mesa 24.0, o suporte à API gráfica Vulkan 1.3 está disponível nos drivers anv para GPUs Intel, radv para GPUs AMD, NVK para GPUs NVIDIA, tu para GPUs Qualcomm, no rasterizador software lavapipe (lvp) e no modo emulador (vn). O suporte ao Vulkan 1.0 é implementado nos drivers v3dv (GPU Broadcom VideoCore VI do Raspberry Pi 4) e dzn (implementação do Vulkan sobre Direct3D 12).
A Mesa também fornece suporte completo para OpenGL 4.6 para os drivers iris (GPU Intel Gen 8+), radeonsi (AMD), Crocus (antigas GPUs Intel Gen4-Gen7), zink, llvmpipe, virgl (GPU virtual Virgil3D para QEMU/KVM), freedreno (Qualcomm Adreno), d3d12 (camada para operar OpenGL sobre DirectX 12) e asahi (GPU AGX, usada em chips Apple M1 e M2). O suporte ao OpenGL 4.5 está disponível para GPUs AMD (r600) e NVIDIA (nvc0). O suporte ao OpenGL 3.3 está presente nos drivers softpipe (rasterizador software) e nv50 (NVIDIA NV50).
Principais novidades:
- No driver asahi, desenvolvido para GPUs AGX usadas em chips ARM da Apple, o suporte ao OpenGL 4.6 e OpenGL ES 3.2 foi implementado.
- O desempenho do driver NVK para GPUs NVIDIA com base nas microarquiteturas Turing (séries GeForce GTX 16xx, RTX 20xx e Quadro RTX), Ampere (séries GeForce RTX 30xx e RTX A2000/4000/5000/6000) e Ada (séries GeForce RTX 4xxx, RTX 4000 SFF, RTX 4xxx/5000/6000 Ada) foi significativamente aprimorado. O driver é considerado pronto para uso diário por um amplo espectro de usuários. O suporte ao Vulkan 1.3 no NVK foi certificado pelo consórcio Khronos. O desempenho acima da camada NVK foi melhorado com a DXVK, que fornece uma implementação do Direct3D 9, 10 e 11.
- Foi adicionada uma mudança que permite utilizar o driver Zink (implementação do OpenGL sobre Vulkan) para garantir suporte ao OpenGL 4.6 em sistemas com as novas séries de placas de vídeo NVIDIA (começando com GeForce RTX 20xx), que podem apresentar problemas no driver OpenGL padrão Nouveau (NVC0). Para ativar o Zink em vez do NVC0, a variável de ambiente ‘NOUVEAU_USE_ZINK=1’ deve ser configurada.
- No driver Panfrost, foi adicionado suporte para GPUs Mali G610, Mali G310 e Mali T600.
- Todos os drivers Vulkan implementaram suporte à sincronização explícita (Explicit Sync) para Wayland e X11. A Explicit Sync permite que aplicativos informem ao gerenciador de composição sobre a prontidão da saída do quadro na tela, o que reduz a latência e elimina artefatos na saída gráfica.
- As capacidades do driver d3d12 foram ampliadas, proporcionando uma camada com implementação do OpenGL sobre DirectX 12.
- O driver V3DV, desenvolvido para a GPU Broadcom VideoCore (usado em placas Raspberry Pi), agora suporta renderização dinâmica.
- O driver Vulkan ANV (Intel) foi adaptado para usar operações assíncronas de mapeamento de memória de vídeo (Asynchronous VM_BIND). Para GPUs baseadas na arquitetura Intel Xe, que é usada nas placas gráficas Intel da família Arc e na gráficos integrados, a partir dos processadores Tiger Lake, foi adicionada a capacidade de redefinir dumps de estado para depuração de travamentos de GPU. Foi feita a preparação para suporte a chips GPU Intel LunarLake (Xe 2).
- Adicionado suporte para novas extensões Vulkan:
- VK_EXT_map_memory_placed para os drivers RADV, ANV e NVK
- VK_KHR_shader_subgroup_rotate para RADV, ANV e NVK
- VK_KHR_load_store_op_none para RADV, ANV, NVK e Turnip
- VK_KHR_line_rasterization para RADV, ANV, NVK e Turnip
- VK_KHR_index_type_uint8 para RADV, ANV, NVK e Turnip
- VK_KHR_shader_expect_assume para todos os drivers Vulkan
- VK_KHR_shader_maximal_reconvergence para RADV, ANV e 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 e RADV
- VK_EXT_queue_family_foreign para NVK
- VK_EXT_image_drm_format_modifier para NVK
Fonte: opennet.ru
