Wydanie Mesa 21.3, darmowej implementacji OpenGL i Vulkan

Po czterech miesiącach prac opublikowano bezpłatną implementację API OpenGL i Vulkan – Mesa 21.3.0. Pierwsze wydanie gałęzi Mesa 21.3.0 ma status eksperymentalny - po ostatecznej stabilizacji kodu zostanie wydana stabilna wersja 21.3.1.

Mesa 21.3 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 dostępna dla kart Intel i AMD, a także w trybie emulatora (vn) i w rasteryzatorze oprogramowania lavapipe, obsługa Vulkan 1.1 jest dostępna dla procesora graficznego Qualcomm i rasteryzatora oprogramowania lavapipe, a Vulkan 1.0 jest dostępna dla Broadcom Karta graficzna VideoCore VI (Raspberry Pi 4).

Główne innowacje:

  • Sterownik Zink (implementacja API OpenGL na bazie Vulkan, która umożliwia uzyskanie przyspieszanego sprzętowo OpenGL, jeśli system ma sterowniki ograniczone do obsługi tylko API Vulkan) obsługuje OpenGL ES 3.2.
  • Sterownik Panfrost, przeznaczony do współpracy z procesorami graficznymi opartymi na mikroarchitekturach Midgard (Mali-T6xx, Mali-T7xx, Mali-T8xx) i Bifrost (Mali G3x, G5x, G7x), posiada oficjalny certyfikat zgodności z OpenGL ES 3.1.
  • Sterownik v3dv, opracowany dla akceleratora graficznego VideoCore VI, stosowanego począwszy od modelu Raspberry Pi 4, posiada certyfikowaną obsługę API graficznego Vulkan 1.1, a także dodał obsługę shaderów geometrii. Znacząco poprawiono wydajność kodu generowanego przez kompilator shaderów, co pozytywnie wpływa na szybkość działania programów aktywnie korzystających z shaderów, takich jak gry oparte na Unreal Engine 4.
  • Sterownik RADV Vulkan (AMD) dodał eksperymentalną obsługę ray tracingu i shaderów ray tracingu. W przypadku kart GFX10.3 obsługa prymitywnego usuwania danych przy użyciu silników cieniujących NGG (Next-Gen Geometry) jest domyślnie włączona.
  • Sterownik Iris OpenGL (nowy sterownik dla procesorów graficznych Intel) dodał możliwość wielowątkowej kompilacji shaderów.
  • Sterownik lavapipe, który implementuje rasteryzator programowy dla API Vulkan (podobny do llvmpipe, ale w przypadku Vulkan, tłumaczący wywołania API Vulkan na API Gallium) zaimplementował obsługę anizotropowego filtrowania tekstur i dodał obsługę Vulkan 1.2.
  • Sterownik OpenGL llvmpipe, przeznaczony do renderowania oprogramowania, zwiększył wydajność 2-3 razy podczas wykonywania czynności związanych z operacjami 2D. Dodano obsługę operacji FP16, anizotropowe filtrowanie tekstur (GL_ARB_texture_filter_anisotropic) i przypięte obszary pamięci (GL_AMD_pinned_memory). Zapewniona jest obsługa profilu zgodności OpenGL 4.5.
  • Moduł śledzenia stanu VA-API (Video Acceleration API) zapewnia obsługę przyspieszania kodowania i dekodowania wideo AV1 podczas korzystania ze sterowników procesora graficznego AMD.
  • Obsługa EGL została zaimplementowana dla platformy Windows.
  • Dodano obsługę rozszerzenia EGL_EXT_present_opaque dla Waylanda. Rozwiązano problemy z wyświetlaniem przezroczystości w grach działających w środowiskach opartych na protokole Wayland.
  • Dodano obsługę rozszerzeń sterowników RADV (AMD), ANV (Intel) i lavapipe Vulkan:
    • VK_EXT_shader_atomic_float2 (Intel, RADV).
    • VK_EXT_vertex_input_dynamic_state (RADV).
    • VK_EXT_primitive_topology_list_restart (RADV, lavapipe).
    • VK_KHR_shader_integer_dot_product (RADV).
    • VK_KHR_synchronizacja2 (Intel).
    • VK_KHR_maintenance4 (RADV).
    • VK_KHR_format_feature_flags2 (RADV).
    • VK_KHR_shader_subgroup_extended_types (fajka lawowa).
    • VK_KHR_spirv_1_4 (fajka lawowa).
    • VK_KHR_timeline_semaphore (fajka lawowa).
    • VK_EXT_external_memory_host (fajka lawowa).
    • VK_KHR_depth_stencil_resolve (fajka lawowa).
    • VK_KHR_shader_float16_int8 (fajka lawowa).
    • VK_EXT_color_write_enable (fajka lawowa).

Źródło: opennet.ru

Dodaj komentarz