Wydanie Mesa 21.0, darmowej implementacji OpenGL i Vulkan

Zaprezentowano wydanie bezpłatnej implementacji API OpenGL i Vulkan - Mesa 21.0.0. Pierwsze wydanie gałęzi Mesa 21.0.0 ma status eksperymentalny - po ostatecznej stabilizacji kodu zostanie wydana stabilna wersja 21.0.1. Mesa 21.0 posiada 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 OpenGL 4.3 dla virgl (wirtualny procesor graficzny Virgil3D dla QEMU/KVM). Vulkan 1.2 jest obsługiwany dla kart Intel i AMD, a Vulkan 1.0 dla VideoCore VI (Raspberry Pi 4).

Główne innowacje:

  • Sterownik Zink (implementacja API OpenGL na platformie Vulkan) zapewnia obsługę OpenGL 4.6. Zink pozwala uzyskać sprzętowo przyspieszany OpenGL, jeśli masz w systemie sterowniki, które obsługują tylko API Vulkan. Wydajność Zink jest zbliżona do wydajności natywnych implementacji OpenGL.
  • Sterownik llvmpipe, przeznaczony do renderowania oprogramowania, obsługuje OpenGL 4.6.
  • Sterownik Freedreno, używany w podsystemie graficznym Qualcomm, obsługuje OpenGL ES 6 dla procesora graficznego Adreno a3.0xx.
  • Sterownik Panfrost dla GPU Midgard (Mali-T7xx, Mali-T8xx) i Bifrost (Mali G3x, G5x, G7x) obsługuje OpenGL 3.1, a także obsługę OpenGL ES 3.0 dla GPU Bifrost.
  • Sterownik radeonsi obsługuje rozszerzenia OpenGL GL_EXT_demote_to_helper_invocation i GL_NV_compute_shader_derivatives. W grze „Counter-Strike: Global Offensive” domyślnie włączony jest tryb optymalizacji „mesa_glthread”, który pozwala zwiększyć wydajność o 10-20%. Wdrożono optymalizacje wpływające na zdawanie testów SPECViewPerf. Dodano obsługę narzędzia profilowania Radeon GPU Profiler (RGP). Dodano obsługę technologii Smart Access Memory dla procesorów graficznych Zen 3 i RDNA 2. Dodano obsługę koderów HEVC SAO (Sample Adaptive Offset, dla procesorów graficznych obsługujących silniki VCN2, VCN2.5 i VCN3) i dekoderów AV1 (dla RDNA 2/RX 6000 i tylko poprzez interfejs OpenMAX).
  • Sterownik RADV Vulkan (dla kart AMD) dodaje obsługę szybkiej matematyki spakowanej (wektoryzacja 16-bitowa) i pamięci Sparse (pozwala na niespójne rozmieszczenie zasobów, takich jak obrazy i tekstury, oraz ponowne dołączenie ich do różnych alokacji pamięci). Zoptymalizowana wydajność dla kart serii RX 6000. Dodano rozszerzenia VK_VALVE_mutable_descriptor_type i VK_KHR_fragment_shading_rate (tylko RDNA2).
  • Sterowniki Intel ANV i Iris zapewniają optymalizację wydajności i oferują wstępną obsługę rozszerzeń Vulkan ray tracing zaimplementowanych w kartach graficznych Xe HPG.
  • Dodano obsługę rozszerzenia EGL_MESA_platform_xcb, które umożliwia aplikacjom tworzenie zasobów EGL z zasobów X11 bez użycia Xlib.
  • Sterownik Vulkan V3DV, opracowany dla akceleratora graficznego VideoCore VI stosowanego w płytach Raspberry Pi 4 opartych na chipie Broadcom BCM2711, dodał obsługę Wayland WSI (Windowing System Integration), która umożliwia dostęp do API Vulkan ze środowisk opartych na Wayland.
  • Wstępna implementacja warstwy tłumaczącej wywołania OpenGL na API DirectX 12 została przyjęta w celu organizacji pracy aplikacji graficznych w środowisku WSL (Windows Subsystem for Linux). Ponadto dołączona jest biblioteka spirv_to_dxil do konwersji pośredniej reprezentacji shaderów SPIR-V na DXIL (język pośredni DirectX) opracowana przez firmę Microsoft.
  • Przeprojektowana i znacznie ulepszona obsługa systemu operacyjnego Haiku.
  • Usunięto ustawienia glx_disable_oml_sync_control, glx_disable_sgi_video_sync i glx_disable_ext_buffer_age z driconf.
  • Usunięto obsługę DRI1 i zatrzymano ładowanie sterowników DRI z wersji Mesa poniżej 8.0.
  • Usunięto sterownik swrast, zbudowany w oparciu o klasyczny interfejs DRI i przeznaczony do renderowania programowego OpenGL (pozostałe sterowniki renderujące programowe llvmpipe i softpipe zauważalnie wyprzedzają swrast pod względem wydajności i funkcjonalności). Usunięcie swrast ułatwiła obecność wielu nierozwiązanych problemów i pojawienie się regresji, mimo że sterownik ten nie jest już używany w dystrybucjach.
  • Usunięto starą, klasyczną wersję API OSMesa (pozostawiono OSMesa bazującą na galu), która pozwala na renderowanie nie na ekranie, a do bufora w pamięci.

    Źródło: opennet.ru

Dodaj komentarz