Wydanie Mesa 21.1, darmowej implementacji OpenGL i Vulkan

Zaprezentowano wydanie darmowej implementacji OpenGL i Vulkan API - Mesa 21.1.0. Pierwsze wydanie gałęzi Mesa 21.1.0 ma status eksperymentalny - po ostatecznej stabilizacji kodu zostanie wydana stabilna wersja 21.1.1. Mesa 21.1 zawiera pełną obsługę OpenGL 4.6 dla sterowników 965, iris (Intel), radeonsi (AMD), zink i llvmpipe. Obsługa OpenGL 4.5 jest dostępna dla procesorów graficznych AMD (r600) i NVIDIA (nvc0), a obsługa OpenGL 4.3 dla virgl (wirtualny procesor graficzny Virgil3D dla QEMU/KVM). Obsługa Vulkan 1.2 jest zaimplementowana dla kart Intel i AMD, Vulkan 1.1 dla procesorów graficznych Qualcomm i rasteryzatora oprogramowania lavapipe, a Vulkan 1.0 dla procesorów graficznych Broadcom VideoCore VI (Raspberry Pi 4).

Główne innowacje:

  • Do sterowników Vulkan RADV (AMD) i ANV (Intel) dodano obsługę rozszerzeń VK_KHR_workgroup_memory_explicit_layout i VK_KHR_zero_initialize_workgroup_memory.
  • Do sterownika RADV dodano obsługę modyfikatorów formatu DRM (dla kart AMD GFX9) (włączono rozszerzenie VK_EXT_image_drm_format_modifier).
  • Sterownik RADV obsługuje technologię VRS (Variable Rate Shading) do użytku z dowolnymi buforami głębi. VRS zwiększa produktywność kosztem jakości.
  • Dodano obsługę procesora graficznego AMD Aldebaran (gfx90a).
  • Dodano nowy sterownik Venus z implementacją wirtualnego GPU (virtio-gpu) w oparciu o API Vulkan.
  • Sterownik Zink (implementacja API OpenGL na platformie Vulkan) obsługuje OpenGL 4.6 i OpenGL ES 3.1. Zink pozwala uzyskać sprzętowo przyspieszany OpenGL, jeśli system ma sterowniki ograniczone do obsługi tylko API Vulkan. Wydajność Zinka jest zbliżona do wydajności natywnych implementacji OpenGL.
  • Sterownik lavapipe z implementacją rasteryzatora programowego dla API Vulkan (analogicznie do llvmpipe, ale dla Vulkan) dodał obsługę Vulkan 1.1 i zaimplementował rozszerzenie Vulkan VK_KHR_copy_commands2. Implementacja oprogramowania w lavapipe opiera się na kopiowaniu wywołań API Vulkan do API Gallium.
  • Dodano obsługę przechowywania pamięci podręcznej shaderów w jednym pliku.
  • Sterowniki Virgl (Virtual GPU Virgil3D dla QEMU/KVM) i Lima (ARM Mali GPU) zapewniają obsługę buforowania shaderów na dysku.
  • Sterownik Gallium D3D12 z warstwą do organizacji pracy OpenGL na wierzchu API DirectX 12 (D3D12) zapewnia kompatybilność z OpenGL 3.3 podczas pracy na sterownikach D3D12 WARP (rasteryzator programowy) i NVIDIA. Sterownik wykorzystywany jest w warstwie WSL2 do uruchamiania aplikacji graficznych Linux w systemie Windows.
  • Dodano nowe rozszerzenia OpenGL:
    • GL_EXT_length_bounds_test dla sterowników softpipe i Zink
    • GL_EXT_texture_filter_minmax dla sterownika nvc0 (gm200+)
    • GL_ARB_texture_filter_minmax dla sterownika nvc0 (gm200+)
    • GL_ARB_post_ głębokość_coverage dla sterownika Zink.

Źródło: opennet.ru

Dodaj komentarz