Wydanie Mesa 24.3, darmowej implementacji OpenGL i Vulkan

Po trzech miesiącach rozwoju opublikowano wydanie bezpłatnej implementacji API OpenGL i Vulkan, Mesa 24.3.0. Pierwsze wydanie gałęzi Mesa 24.3.0 ma status eksperymentalny - po ostatecznej stabilizacji kodu zostanie wydana stabilna wersja 24.3.1.

Mesa 24.3 obsługuje API graficzne Vulkan 1.3 w anv dla procesorów graficznych Intel, radv dla procesorów graficznych AMD, NVK dla procesorów graficznych NVIDIA, tu dla procesorów graficznych Qualcomm, rasteryzator programowy lavapipe (lvp), tryb emulatora (vn) i v3dv (GPU Broadcom VideoCore dla Raspberry Pi 4+). Obsługa Vulkan 1.0 jest zaimplementowana w sterownikach dzn (implementacja Vulkan na bazie Direct3D 12) i panvk (procesor graficzny ARM Mali).

Mesa zapewnia także pełną obsługę OpenGL 4.6 dla iris (procesory graficzne Intel Gen 8+), radeonsi (AMD), Crocus (starsze procesory graficzne Intel Gen4-Gen7), zink, llvmpipe, virgl (wirtualny procesor graficzny Virgil3D dla QEMU/KVM), sterowniki freedreno ( Qualcomm Adreno), d3d12 (warstwa organizująca pracę OpenGL na bazie DirectX 12) i asahi (procesor graficzny AGX stosowany w chipach Apple M1 i M2). Obsługa OpenGL 4.5 jest dostępna dla procesorów graficznych AMD (r600) i NVIDIA (nvc0). Obsługa OpenGL 3.3 jest dostępna w sterownikach softpipe (rasterizer programowy) i nv50 (NVIDIA NV50).

Główne innowacje:

  • Sterownik v3dv zapewnia pełną obsługę API graficznego Vulkan 1.3 dla procesorów graficznych VideoCore używanych na płytach Raspberry Pi 4 i Raspberry Pi 5.
  • Dodano nowy sterownik Vulkan gfxstream-vk, którego można używać do wirtualizacji interfejsu API Vulkan i uzyskiwania dostępu do tego interfejsu graficznego z systemów gościa opartych na systemach Linux, Android i Fuchsia. Sterownik jest używany przez Google w emulatorze Androida, emulatorze Fuchsia, usługach chmurowych Androida i systemie Android Automotive OS (AAOS).
  • Do interfejsu integracji graficznego API Vulkan z systemami okienkowymi (WSI, Windowing System Integration) dodano obsługę rozszerzenia Vulkan VK_PRESENT_MODE_FIFO_KHR, co umożliwia wykorzystanie wyjścia w oczekiwaniu na zakończenie skanowania pionowego (vblank) zamiast korzystać z wywołań zwrotnych przy każdym gotowym wyświetleniu nowej ramki, co rozwiązuje problem dużego obciążenia GPU podczas korzystania z VSync.
  • W systemach z procesorami graficznymi Intel opartymi na architekturze Xe2 kompresja bufora głębi (z-bufor) jest domyślnie włączona.
  • Sterowniki iris OpenGL i sterownik ANV Vulkan dodały wstępną obsługę procesorów graficznych Intel opartych na architekturze Xe3 występującej w procesorach Panther Lake.
  • Do sterownika NVK (NVIDIA) dodano obsługę rozszerzeń Vulkan:
    • VK_EXT_descriptor_buffer
    • VK_EXT_post_głębia_pokrycia
    • VK_EXT_legacy_vertex_attributes
    • VK_KHR_konserwacja7
    • VK_KHR_dynamic_rendering_local_read
    • VK_NV_compute_shader_derivatives
    • VK_KHR_compute_shader_derivatives
    • VK_KHR_shader_float_controls2
    • VK_EXT_host_image_copy (dla GPU Turing+)
    • VK_KHR_shader_quad_control
    • VK_KHR_fragment_shading_rate
    • VK_EXT_głębia_zacisku_zero_one
    • Komendy VK_EXT_device_generated_commands
  • Do sterownika RADV (AMD) dodano obsługę rozszerzeń Vulkan:
    • VK_KHR_video_maintenance1
    • VK_KHR_pipeline_binary
    • VK_KHR_compute_shader_derivatives
    • VK_KHR_shader_float_controls2
    • Komendy VK_EXT_device_generated_commands
    • Instrukcja VK_KHR_shader_relaxed_extended_instruction
  • Do sterownika ANV (Intel) dodano obsługę rozszerzeń Vulkan
    • VK_KHR_compute_shader_derivatives
    • Instrukcja VK_KHR_shader_relaxed_extended_instruction
    • VK_EXT_głębia_zacisku_kontroli
  • Sterownik hasvk (Intel Ivy Bridge, Haswell i Broadwell) dodał obsługę rozszerzeń Vulkan:
    • VK_EXT_głębia_zacisku_kontroli
    • Instrukcja VK_KHR_shader_relaxed_extended_instruction
  • Do sterowników hk, tu, v3dv i lvp dodano obsługę rozszerzenia Vulkan VK_KHR_shader_relaxed_extended_instruction.
  • Dodano obsługę nowych rozszerzeń OpenGL:
    • GL_KHR_shader_subgroup w sterowniku radeonsi
    • GL_OVR_multiview w sterowniku Zink
    • GL_OVR_multiview2 w sterowniku Zink
    • GL_ARB_draw_indirect do sterownika etnaviv/HALTI5+
    • GL_EXT_draw_buffers2 w sterowniku etnaviv/HALTI5+
    • GL_ARB_draw_buffers_blend w sterowniku etnaviv/HALTI5+
    • GL_ARB_framebuffer_no_attachments w sterowniku etnaviv
    • GL_ARB_timer_query w sterowniku Panfrost
    • GL_EXT_disjoint_timer_query w sterowniku Panfrost

Źródło: opennet.ru

Dodaj komentarz