Pas tre muajsh zhvillimi, është paraqitur lëshimi i implementimit të lirë të API OpenGL dhe Vulkan — Mesa 25.3.0. Eti i lëshimit të ri në git u publikua më 15 nëntor, por njoftimi në faqe doli vetëm dje (në newsletter, lëshimi nuk është shpallur ende). Lëshimi i parë i degës Mesa 25.3.0 ka status eksperimental — pas stabilizimit përfundimtar të kodit do të lëshohet një version i stabilizuar 25.3.1.
Në Mesa 25.3, mbështetja për API-në grafike Vulkan 1.4 është e disponueshme në drejtuesit ANV për GPU Intel, RADV për GPU AMD, NVK për GPU NVIDIA, HoneyKrisp (hk) për GPU Apple, Turnip për GPU Qualcomm, PanVK për GPU ARM Mali, në rasterizatorin e softuerit lavapipe (lvp) dhe në modin emulator (vn). Në drejtuesit v3dv (GPU Broadcom VideoCore për Raspberry Pi 4+) dhe dzn (implementimi i Vulkan mbi Direct3D 12) mbështetet Vulkan 1.0, në drejtuesin kk (KosmicKrisp, Vulkan mbi Metal) — Vulkan 1.1, ndërsa në drejtuesin pvr (GPU Imagination PowerVR) — Vulkan 1.2.
Në Mesa gjithashtu sigurohet mbështetje e plotë për OpenGL 4.6 për drejtuesit iris (GPU Intel Gen 8+), radeonsi (AMD), Crocus (GPU të vjetra Intel Gen4-Gen7), AMD (r600), zink, llvmpipe, virgl (GPU virtual Virgil3D për QEMU/KVM), freedreno (Qualcomm Adreno), d3d12 (layer për organizimin e funksionimit të OpenGL mbi DirectX 12) dhe asahi (GPU AGX, e përdorur në çipat Apple M1 dhe M2). Mbështetje për OpenGL 4.5 është e disponueshme për GPU NVIDIA (nvc0). Mbështetje për OpenGL 3.3 është e pranishme në drejtuesit softpipe (rasterizator programor) dhe nv50 (NVIDIA NV50). Në drejtuesit panfrost (GPU ARM Mali) dhe v3d (GPU Broadcom VideoCore) mbështetet OpenGL 3.1.
Të rejat kryesore:
- Në përbërje është përfshirë një shofer i ri Vulkan KosmicKrisp (kk), i cili implementon API grafik Vulkan mbi API Metal, që zhvillohet nga Apple dhe përdoret në macOS. Shoferi është krijuar nga LunarG për përdorim në kompjuterët Mac me çipat Apple Silicon. Në formën aktuale, shoferi është plotësisht i kompatibël me API Vulkan 1.1, por vërehet se është shumë pranë realizimit të mbështetjes për Vulkan 1.3.
- Shoferi ethos për NPU Arm Ethos-U65 është shtuar.
- Në shoferin Vulkan pvr, i zhvilluar për GPU Imagination PowerVR, është siguruar mbështetje për Vulkan 1.2.
- Shtesa e optimizimeve në shoferin Vulkan RADV ka rritur ndjeshëm shpejtësinë e motorit të ekzekutimit të modeleve gjuhësore të mëdha Llama.cpp kur përdoret backend-i Vulkan në sistemet me GPU AMD. Në disa teste me llama-bench, konfigurimi i bazuar në shoferin RADV është treguar më i shpejtë se shoferi AMDVLK dhe stoku ROCm me 31% për përpunimin e kërkesave (testet "pp" — prompt processing) dhe me 4% për gjenerimin e tokeneve (testet "tg" — token generation).
- Është hequr mbështetja për ndërfaqen VDPAU (Video Decode and Presentation API për Unix) të krijuar nga NVIDIA. Si arsyet për heqjen janë përmendur mundësia e përdorimit të VDPAU vetëm në sisteme me X11 dhe OpenGL, për shkak të mungesës së mbështetjes për Wayland dhe Vulkan. Për më tepër, API VDPAU ka kufizime që nuk lejojnë dekodimin e saktë të disa rrjedhjeve video. Në vend të VDPAU, rekomandohet përdorimi i API VA-API (Video Acceleration API), i cili mund të përdoret me Wayland dhe Vulkan dhe ka mbështetje më të mirë në aplikacione.
- Në drayverin Zink, i cili implementon OpenGL 4.6 mbi Vulkan, është implementuar mbështetje për mesh-shader, duke ofruar një mënyrë alternative për gjenerimin e koleksioneve të primitivave gjeometrike.
- Në drayverin rusticl është shtuar mbështetje për zgjerime OpenCL për punën me semaforët (cl_khr_semaphore dhe cl_khr_external_semaphore).
- Në kompilatorin e shaderave është shtuar funksionalitet për zëvendësimin e shaderave SPIR-V.
- Është realizuar një sloj Vulkan për mbështetje të teknologjisë AMD Anti-Lag, që minimizon vonesat mes thirrjeve vkQueueSubmit ose vkQueueSubmit2 dhe fillimit të ekzekutimit të operacioneve, duke lejuar reduktimin e vonesave gjatë shfaqjes në ekran në lojëra.
- Është shtuar mbështetje për zgjerimet OpenGL:
- GL_EXT_mesh_shader për zink
- GL_ARB_robust_buffer_access_behavior për Panfrost
- GL_KHR_robust_buffer_access_behavior për Panfrost
- GL_KHR_robustness për Panfrost dhe v3d
- GL_ATI_meminfo për r300
- GL_NVX_gpu_memory_info për r300
- GL_NV_shader_atomic_int64 për radeonsi dhe Panfrost V9+
- GL_NV_representative_fragment_test për zink
- EGL_EXT_create_context_robustness për Panfrost V10+
- Në drajverin ANV (Intel) është realizuar zgjerimi Vulkan: VK_KHR_shader_untyped_pointers
- Në drejtuesin RADV (AMD) janë implementuar zgjerimet Vulkan:
- VK_EXT_ycbcr_2plane_444_formats
- VK_KHR_shader_untyped_pointers
- VK_KHR_video_encode_intra_refresh
- VK_KHR_video_encode_quantization_map
- Në drejtuesin NVK (NVIDIA) janë implementuar zgjerimet Vulkan:
- VK_AMD_buffer_marker
- VK_KHR_maintenance8
- VK_KHR_maintenance9
- VK_NVX_image_view_handle
- Në drajverin HoneyKrisp (Apple) është realizuar zgjerimi OpenGL: VK_KHR_maintenance9
- Në drajverin PanVK (GPU ARM Mali) janë realizuar zgjerimet Vulkan: ‘
- VK_ARM_shader_core_builtins
- VK_EXT_mutable_descriptor_type
- VK_KHR_maintenance7
- VK_KHR_maintenance8
- VK_KHR_maintenance9
- Në drajverin pvr (GPU Imagination PowerVR) janë realizuar zgjerimet Vulkan:
- VK_EXT_border_color_swizzle
- VK_EXT_color_write_enable
- VK_EXT_custom_border_color
- VK_EXT_depth_clamp_zero_one
- VK_EXT_depth_clip_enable
- VK_EXT_extended_dynamic_state
- VK_EXT_extended_dynamic_state2
- VK_EXT_extended_dynamic_state3
- VK_EXT_image_2d_view_of_3d
- VK_EXT_line_rasterization
- VK_EXT_map_memory_placed
- VK_EXT_physical_device_drm
- VK_EXT_provoking_vertex
- VK_EXT_queue_family_foreign
- VK_EXT_robustness2
- VK_EXT_separate_stencil_usage
- VK_EXT_shader_demote_to_helper_invocation
- VK_EXT_shader_replicated_composites
- VK_EXT_vertex_attribute_divisor
- VK_EXT_zero_initialize_device_memory
- VK_KHR_buffer_device_address
- VK_KHR_create_renderpass2
- VK_KHR_dedicated_allocation
- VK_KHR_depth_stencil_resolve
- VK_KHR_descriptor_update_template
- VK_KHR_device_group
- VK_KHR_device_group_creation
- VK_KHR_imageless_framebuffer
- VK_KHR_line_rasterization
- VK_KHR_maintenance1
- VK_KHR_maintenance2
- VK_KHR_maintenance3
- VK_KHR_map_memory2
- VK_KHR_multiview
- VK_KHR_robustness2
- VK_KHR_sampler_mirror_clamp_to_edge
- VK_KHR_separate_depth_stencil_layouts
- VK_KHR_shader_draw_parameters
- VK_KHR_shader_float_controls
- VK_KHR_shader_non_semantic_info
- VK_KHR_shader_relaxed_extended_instruction
- VK_KHR_shader_subgroup_extended_types
- VK_KHR_shader_terminate_invocation
- VK_KHR_spirv_1_4
- VK_KHR_swapchain_mutable_format
- VK_KHR_vertex_attribute_divisor
- VK_KHR_wayland_surface
- Implementohen zgjerimet OpenCL:
- cl_ext_immutable_memory_objects
- cl_khr_external_semaphore për radeonsi dhe zink
- cl_khr_external_semaphore_sync_fd për radeonsi dhe zink
- cl_khr_semaphore për radeonsi dhe zink
Gjithashtu mund të theksohet publikimi i versionit të ri të specifikimit Vulkan 1.4.333, i cili ofron një zgjerim të ri VK_EXT_ray_tracing_invocation_reorder, që rrit performancën e gjurmimit të rrezeve me 47% në testet e kryera me SER (Shader Execution Reordering) në vk_gltf_renderer.
Burimi: opennet.ru
