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
