Üç aylıq inkişafdan sonra OpenGL və Vulkan API-lərin açıq tətbiqi — Mesa 25.3.0 buraxılışı təqdim edildi. Yeni versiyanın git-dəki etiketi 15 noyabrda yayımlandı, lakin vebsaytda elan dünən baş verdi (buraxılış hələ də xəbərdə qeyd olunmayıb). Mesa 25.3.0 buraxılışının ilk versiyası eksperimental statusdadır — kodun son sabitləşdirilməsindən sonra stabilləşdirilmiş 25.3.1 versiyası buraxılacaq.
Mesa 25.3-də Intel GPU-ları üçün ANV sürücülərində, AMD GPU-ları üçün RADV, NVIDIA GPU-ları üçün NVK, Apple GPU-ları üçün HoneyKrisp (hk), Qualcomm GPU-ları üçün Turnip, ARM Mali GPU-ları üçün PanVK, proqram rastorizatoru lavapipe (lvp) və emulyator rejimində (vn) Vulkan 1.4 qrafik API-də dəstək mövcuddur. v3dv (Raspberry Pi 4+ üçün Broadcom VideoCore GPU) və dzn (Direct3D 12 üzərində Vulkan tətbiqi) sürücülərində Vulkan 1.0, kk (KosmicKrisp, Metal üzərində Vulkan) sürücüsündə Vulkan 1.1 və pvr (Imagination PowerVR GPU) sürücüsündə Vulkan 1.2 dəstəyi var.
Mesa eyni zamanda iris (Intel Gen 8+ GPU-ları), radeonsi (AMD), Crocus (köhnə Intel Gen 4-7 GPU-ları), AMD (r600), zink, llvmpipe, virgl (QEMU/KVM üçün virtual Virgil3D GPU), freedreno (Qualcomm Adreno), d3d12 (OpenGL-in DirectX 12 üzərində işləməsi üçün interfeys) və asahi (Apple M1 və M2 çiplərində istifadə olunan AGX GPU) sürücüləri üçün OpenGL 4.6 dəstəyi təmin edir. NVIDIA GPU-ları üçün (nvc0) OpenGL 4.5 dəstəyi mövcuddur. OpenGL 3.3 dəstəyi softpipe (proqram rastorizatoru) və nv50 (NVIDIA NV50) sürücülərində var. panfrost (ARM Mali GPU) və v3d (Broadcom VideoCore GPU) sürücülərində OpenGL 3.1 dəstəyi var.
Əsas yeniliklər:
- KosmicKrisp (kk) adlanan yeni Vulkan sürücüsü əlavə edilib ki, bu da Vulkan qrafik API-ni Apple tərəfindən inkişaf etdirilən Metal API-si üzərində həyata keçirir. Bu sürücü, Apple Silicon çipləri olan Mac kompüterlərində istifadə üçün LunarG tarafından hazırlanmışdır. Hal-hazırda sürücü tamamilə Vulkan 1.1 API ilə uyğundur, lakin qeyd olunur ki, artıq Vulkan 1.3-ün dəstəyi göstərilməsinə çox yaxındır.
- Arm Ethos-U65 NPU üçün ethos sürücüsü əlavə edilib.
- Imagination PowerVR GPU-ları üçün inkişaf etdirilən pvr Vulkan sürücüsündə Vulkan 1.2 dəstəyi təmin edilib.
- RADV Vulkan sürücüsündə optimizasiyalar əlavə edilib ki, bu da AMD GPU-larında Vulkan arxa planında Llama.cpp-in böyük dil modellərinin icra sürətini əhəmiyyətli dərəcədə artırır. Bəzi testlərdə RADV sürücüsünə əsaslanan konfiqurasiya AMDVLK və ROCm yığımı sürücüsündən 31% daha sürətli olmuşdur ("pp" — prompt processing testləri) və tokenlərin yaradılması üzərində 4% daha sürətli ("tg" — token generation testləri).
- NVIDIA tərəfindən yaradılan VDPAU (Video Decode and Presentation API for Unix) interfeysinin dəstəyi ləğv edilib. Ləğv edilmə səbəbləri arasında VDPAU-nun yalnız X11 və OpenGL sistemlərində işləməsi, Wayland və Vulkan dəstəyinin olmaması göstərilmişdir. Həmçinin, VDPAU API-də bəzi video axınlarını düzgün dekod etməyə imkan verməyən məhdudiyyətlər mövcuddur. VDPAU-nun yerinə Wayland və Vulkan ilə tətbiq oluna bilən və daha yaxşı dəstək verilən VA-API (Video Acceleration API) istifadə olunması təklif olunur.
- Zink sürücüsünde, Vulkan üzerinde OpenGL 4.6'yı uygulayan, geometrik primitlerin koleksiyonlarını oluşturmak için alternatif bir yöntem sunan mesh shader desteği eklenmiştir.
- Rusticl sürücüsünde, semaphore'larla (cl_khr_semaphore ve cl_khr_external_semaphore) çalışmak için OpenCL uzantı desteği eklenmiştir.
- Shader derleyicisine SPIR-V shader'larını değiştirme işlevselliği eklenmiştir.
- AMD Anti-Lag teknolojisini destekleyen Vulkan katmanı uygulanmıştır; bu, vkQueueSubmit veya vkQueueSubmit2 çağrıları ile işlemlerin yürütülmeye başlanması arasındaki gecikmeleri en aza indirir ve oyunlarda ekran çıktısındaki gecikmeleri azaltmayı sağlar.
- OpenGL uzantı desteği eklenmiştir:
- zink için GL_EXT_mesh_shader
- Panfrost için GL_ARB_robust_buffer_access_behavior
- Panfrost için GL_KHR_robust_buffer_access_behavior
- Panfrost ve v3d için GL_KHR_robustness
- r300 için GL_ATI_meminfo
- r300 için GL_NVX_gpu_memory_info
- radeonsi ve Panfrost V9+ için GL_NV_shader_atomic_int64
- zink için GL_NV_representative_fragment_test
- Panfrost V10+ için EGL_EXT_create_context_robustness
- ANV (Intel) sürücüsünde Vulkan uzantısı uygulanmıştır: VK_KHR_shader_untyped_pointers
- RADV (AMD) sürücüsünde Vulkan uzantıları uygulanmıştır:
- VK_EXT_ycbcr_2plane_444_formats
- VK_KHR_shader_untyped_pointers
- VK_KHR_video_encode_intra_refresh
- VK_KHR_video_encode_quantization_map
- NVK (NVIDIA) sürücüsünde Vulkan uzantıları uygulanmıştır:
- VK_AMD_buffer_marker
- VK_KHR_maintenance8
- VK_KHR_maintenance9
- VK_NVX_image_view_handle
- HoneyKrisp (Apple) sürücüsünde OpenGL uzantısı uygulanmıştır: VK_KHR_maintenance9
- PanVK (GPU ARM Mali) sürücüsünde Vulkan uzantıları uygulanmıştır:
- VK_ARM_shader_core_builtins
- VK_EXT_mutable_descriptor_type
- VK_KHR_maintenance7
- VK_KHR_maintenance8
- VK_KHR_maintenance9
- pvr (GPU Imagination PowerVR) sürücüsünde Vulkan uzantıları uygulanmıştır:
- 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
- OpenCL uzantıları uygulanmıştır:
- cl_ext_immutable_memory_objects
- radeonsi ve zink için cl_khr_external_semaphore
- radeonsi ve zink için cl_khr_external_semaphore_sync_fd
- radeonsi ve zink için cl_khr_semaphore
Ayrıca Vulkan 1.4.333 spesifikasyonunun yeni bir sürümü yayınlanmıştır; bu sürümde, vk_gltf_renderer'da SER (Shader Execution Reordering) kullanırken ray tracing performansını artıran yeni VK_EXT_ray_tracing_invocation_reorder uzantısı önerilmiştir.
Mənbə: opennet.ru
