Wydanie Mesa 22.3, darmowej implementacji OpenGL i Vulkan

Opublikowano wydanie bezpłatnej implementacji API OpenGL i Vulkan - Mesa 22.3.0. Pierwsze wydanie gałęzi Mesa 22.3.0 ma status eksperymentalny - po ostatecznej stabilizacji kodu zostanie wydana stabilna wersja 22.3.1.

Mesa 22.3 zapewnia obsługę interfejsu graficznego Vulkan 1.3 w trybie anv dla procesorów graficznych Intel, radv dla procesorów graficznych AMD, tu dla procesorów graficznych Qualcomm oraz w trybie emulatora (vn). Obsługa Vulkan 1.1 jest zaimplementowana w rasteryzatorze oprogramowania lavapipe (lvp), a Vulkan 1.0 w sterowniku v3dv (procesor graficzny Broadcom VideoCore VI z Raspberry Pi 4).

Mesa zapewnia także 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), NVIDIA (nvc0) i Qualcomm Adreno (freedreno), OpenGL 4.3 dla virgl (wirtualny procesor graficzny virgil3D dla QEMU/KVM) i OpenGL 4.2 dla sterownika d3d12 (warstwa do organizowania OpenGL pracować na DirectX 12).

Główne innowacje:

  • Sterownik freedreno dla procesorów graficznych Qualcomm Adreno zapewnia obsługę interfejsu graficznego OpenGL 4.5, a sterownik emulatora (vn) obsługuje interfejs API Vulkan 1.3.
  • Sterownik Panfrost implementuje możliwość buforowania shaderów na dysku i dodaje obsługę procesora graficznego Mali T620. Sterownik jest kompatybilny ze specyfikacją OpenGL 3.1 i OpenGL ES 3.1.
  • Sterownik RADV (AMD) Vulkan dodał obsługę procesorów graficznych GFX11/RDNA3 (seria Radeon RX 7000). Zoptymalizowano kod śledzenia promieni. Dodano obsługę formatów pikseli R8G8B8, B8G8R8 i R16G16B16, a także 64-bitowych formatów buforów wierzchołków. Dodano obsługę flagi ExtendedDynamicState2PatchControlPoints, która określa obsługę rozszerzenia VK_EXT_extended_dynamic_state2. Zintegrowany analizator Radeon Raytracing.
  • Pakiet zawiera sterownik Rusticle z implementacją specyfikacji OpenCL 3.0, która definiuje API i rozszerzenia języka C do organizacji wieloplatformowego przetwarzania równoległego. Sterownik napisany jest w języku Rust, opracowany przy użyciu interfejsu Gallium dostarczonego w Mesa i działa jako odpowiednik frontendu Clover OpenCL obecnego w Mesa. Clover została porzucona na długi czas, a jej przyszły następcą jest rusticl. Obsługa języków Rust i rusticl jest domyślnie wyłączona i wymaga kompilacji z jawnymi opcjami „-D gallium-rusticl=true -Dllvm=enabled -Drust_std=2021”. Podczas budowania jako dodatkowe zależności wymagane są kompilator rustc, generator wiązania bindgen, LLVM, SPIRV-Tools i SPIRV-LLVM-Translator.
  • Sterownik RadeonSI domyślnie obsługuje renderowanie wielowątkowe poprzez OpenGL.
  • Wprowadzono Mesa-DB, nowy typ pamięci podręcznej modułu cieniującego, która przechowuje dane w jednym pliku.
  • Dodano obsługę rozszerzeń OpenGL:
    • GL_ARB_shader_clock dla llvmpipe.
    • GL_KHR_blend_equation_advanced_coherent dla cynku.
    • GL_NV_shader_atomic_float dla llvmpipe.
  • Dodano obsługę rozszerzeń Vulkan:
    • VK_KHR_shader_clock dla lavapipe.
    • VK_EXT_attachment_feedback_loop_layout dla RADV, lavapipe.
    • VK_KHR_global_priority dla RADV.
    • VK_EXT_load_store_op_none dla RADV.
    • VK_EXT_mutable_descriptor_type dla RADV.
    • VK_EXT_shader_atomic_float dla lvp.
    • VK_EXT_shader_atomic_float2 dla lvp.
    • VK_EXT_image_robustness dla v3dv.
    • VK_EXT_extended_dynamic_state3 dla lavapipe, RADV i ANV.
    • VK_EXT_extended_dynamic_state2 dla RADV.
    • VK_EXT_pipeline_robustness dla v3dv.
    • VK_EXT_mesh_shader dla ANV.

Źródło: opennet.ru

Dodaj komentarz