Pärast kolme kuu arendustööd on esitatud avatud rakenduse OpenGL ja Vulkan versioon — Mesa 25.2.0. Esimene versioon harust Mesa 25.2.0 on eksperimentaalses staatuses — pärast koodi lõplikku stabiliseerimist on planeeritud stabiilse versiooni 25.2.1 väljaandmine.
Mesa 25.2 toetab graafika API Vulkan 1.4 Intel'i ANV juhtmetes, AMD RADV juhtmetes, NVIDIA NVK juhtmetes, Apple'i Asahi juhtmetes, Qualcomm'i Turnip juhtmetes, ARM Mali PanVK juhtmetes, tarkvaralisest rasterisaatorist lavapipe (lvp) ja simulaatori režiimis (vn). Broadcom VideoCore GPU-d Raspberry Pi 4+ töötlevates v3dv juhtmetes ja Direct3D 12 peal rakenduses dzn toetatakse Vulkan 1.0.
Mesa tagab täieliku toe OpenGL 4.6 graafikakaartide iris (Intel Gen 8+), radeonsi (AMD), Crocus (vana Intel Gen4-Gen7 graafikakaart), AMD (r600), zink, llvmpipe, virgl (virtuaalne GPU Virgil3D QEMU/KVM jaoks), freedreno (Qualcomm Adreno), d3d12 (kiht OpenGL rakendamiseks DirectX 12 peal) ja asahi (AGX GPU, mida kasutatakse Apple M1 ja M2 kiipide jaoks). OpenGL 4.5 tugi on saadaval NVIDIA GPU (nvc0) jaoks. OpenGL 3.3 tugi on olemas softpipe (tarkvaraline rastaerija) ja nv50 (NVIDIA NV50) draivides. OpenGL 3.1 tugi on olemas draivides tpanfrost (ARM Mali GPU) ja v3d (Broadcom VideoCore GPU).
Põhilised uuendused:
- PanVK Vulkan-draiveris ARM Mali GPU-dele, mis põhinevad V10 arhitektuuril, nagu Mali-G610 ja Mali-G310, on lisatud toetus graafika API Vulkan 1.4 (enne oli toetus Vulkan 1.2).
- OpenGL juhtmes r600 vanadele AMD GPU-dele (kuni Radeon HD 7000 seeriateni) on lisatud toetus graafika API OpenGL 4.6 (enne oli toetus OpenGL 4.5).
- Vulkan-draiver NVK toetab nüüd NVIDIA GPU-sid, mis põhinevad Blackwell ja Kepleri mikroarhitektuuridel (GTX 600/700). GPU Blackwell toetab Vulkan 1.4, samas kui GPU Kepleri jaoks on saadaval Vulkan 1.2 API (uuemad Vulkan versioonid ei toeta riistvara piirangute tõttu). NVIDIA GPU-dele, mis põhinevad Maxwelli mikroarhitektuuril, on tagatud täielik ühilduvus Vulkan 1.4-ga.
- Shaderi kompilaatori NAK töö on optimeeritud, kasutades Rusti keelt draiveris NVK. NVK draiveri sõltuvuste hulka on lisatud crate-pakett rustc-hash, mis on võimaldanud shaderite kompileerimise aega vähendada ligikaudu 12%.
- OpenGLi tugi NVIDIA GPU-dele, mis põhinevad Maxwellil, Pascalil ja Voltale, on vaikimisi vahetatud Nouveau draiverilt Zink-draiveri kasuks koos Vulkan-draiveriga NVK. Zink on samuti kasutusel OpenGLi toe tagamiseks Blackwell GPU-de süsteemides (Nouveau OpenGLi draiveris ei plaanita Blackwell GPU-d toetada). Zink pakub OpenGL 4.6 teostust Vulkanil, võimaldades riistvaraliselt kiirendatud OpenGL-i seadmetes, mis toetavad Vulkan API-d. Zinki jõudlus on sarnane seadmete originaalsete OpenGL-i teostuste jõudlusele.
- Honeykrisp Vulkan-draiveri jõudlus on oluliselt paranenud Apple M1/M2 kiibiga tarnitud graafikakaartide jaoks.
- Vulkan-draiveritesse RADV (AMD GPU) ja ANV (Intel) on lisatud VP9 videode kodeerimise riistvaralise kiirenduse tugi. See võimalus on teostatud Vulkani laienduse VK_KHR_video_decode_vp9 abil, mille töötas välja Vulkan WG. Riistvaraline kiirendus on saadaval AMD GPU-de puhul alates Navi 10 mikroarhitektuurist RDNA 1.0.
- AMD GPU-de RADV Vulkan-draiveris RDNA3 ja RDNA4 mikroarhitektuuriga on paranenud ray tracing jõudlus ja täiustatud FSR 4 (FidelityFX Super Resolution) super-sampling tehnoloogia tugi. Lisatud on võimalus seadistada prioriteedid käsuava järjekorrale (OpenCL laiendus cl_khr_priority_hints).
- Radeonsi OpenGL-draiveris on vanade AMD graafikakaartide Evergreen ja Cayman perekondade jaoks rakendatud OpenGL 4.6 tugi. Lisatud on jagatud virtuaalse mälu (SVM, Shared Virtual Memory) tugi.
- OpenGL-draiveris Iris ja Vulkan-draiveris ANV on rakendatud GPU toetust, mida kasutatakse Intel Wildcat Lake protsessorites. Iris ja ANV süsteemides on samuti ametlikult toetatud GPU-d, mis põhinevad Xe3 arhitektuuril, mida kasutatakse Panther Lake protsessorites. Parandatud on Xe2 ja Xe3 GPU perede toetust. Iris draiverisse on lisatud jagatud virtuaalsete mälu (SVM, Shared Virtual Memory) tugi.
- OpenGL-draiveris freedreno on lisatud toetus GPU-le Adreno X1-45, mida kasutatakse SoC Qualcomm Snapdragon X Plus-s.
- Jätkub OpenCL-draiveri Rusticl arendamine, mis on kirjutatud Rust keeles ja asendab Clover draiverit. Rusticl'i on lisatud SVM (Shared Virtual Memory) tugi, sRGB värviruumis pildid (formaat CL_sRGBA ja CL_sBGRA), samuti FP16 formaat (OpenCL-i laiendus cl_khr_fp16 draiveritele asahi, freedreno, llvmpipe, panfrost, radeonsi ja zink).
- Lisatud on Gallium3D eesliide MFT (Media Foundation Transform), mis võimaldab kasutada draiverit D3D12 (Direct3D 12) teiste graafikate API-de rakendamiseks. Microsofti arendatud Windows Subsystem for Linux (WSL) jaoks.
- DRI2 (Direct Rendering Infrastructure) infrastruktuuri tugi on eemaldatud, mille asemel on otsejuurdepääs videoadapterile võimalik DRI3 liidese kaudu, mis kasutab DMA-BUF-i. Põhjuseks tuuakse välja, et DRI3 liides on olnud juba üle 10 aasta, DRI2 on ammu vananenud ja kõik toetatud GPU draiverid on juba rakendanud DRI3 liidest.
- Vanade ühiste buferite töötamise meetodite tugi on lõpetatud — jäetud on alles võimalus kasutada dma-buf.
- Toetavate libX11 versioonide, mis ei taga turvalist töötamist mitme lõimega rakendustes, tugi on lõpetatud. Toetatakse ainult libX11 1.8 (aprill 2022) ja uuemaid väljaandeid, mis kasutavad XInitThreads() kutset.
- EGL_WL_bind_wayland_display laienduse tugi, mis on rakendatud Waylandi jaoks, on kuulutatud vananenuks ja vaikimisi välja lülitatud. Pikslibufferite vahetamiseks kliendi ja serveriga Waylandi vahel soovitatakse kasutada Waylandi protokolli linux_dmabuf. Toetuse taastamiseks on vajalik konstruktsiooni ajal määrata lipp "-Dlegacy-wayland=bind-wayland-display". Xwayland toetab korrektset töötamist ilma EGL_WL_bind_wayland_display-ta alates versioonist 24.1 (mai 2024).
- Eemaldatud on vananenud OpenCL-draiver Clover. OpenCL-i jaoks tuleks kasutada draiverit RustiCL, mis on funktsionaalsem ja toetab rohkem OpenCL-i versioone.
- Draiveris ANV (Intel) on rakendatud Vulkani laiendus:
- VK_KHR_shader_bfloat16
- Draiveris RADV (AMD) on rakendatud Vulkan laiendid:
- VK_KHR_shader_bfloat16
- VK_KHR_robustness2
- VK_EXT_zero_initialize_device_memory
- VK_EXT_scalar_block_layout
- VK_KHR_maintenance9
- VK_KHR_unified_image_layouts
- VK_KHR_shader_float8
- VK_EXT_host_image_copy
- Draiveris NVK (NVIDIA) on rakendatud Vulkan laiendid:
- VK_EXT_zero_initialize_device_memory
- VK_KHR_cooperative_matrix
- Draiveris zink on rakendatud Vulkani laiendus:
- NV_timeline_semaphore
- Draiveris v3d (Broadcom VideoCore GPU Raspberry Pi 4+ jaoks) on rakendatud OpenGL-i laiendus:
- v3d GL_ARB_blend_func_extended
- Draiveris panfrost on rakendatud OpenGL-i laiendused:
- GL_KHR_texture_compression_astc_hdr
- GL_ARB_shader_clock
- GL_EXT_shader_realtime_clock
- Draiveris asahi (Apple) on rakendatud OpenGL-i laiendus:
- GL_KHR_texture_compression_astc_hdr
- Draiveris r600 (AMD) on rakendatud OpenGL-i laiendused:
- GL_EXT_window_rectangles
- GL_EXT_shader_image_load_store
- Draiveris PanVK (ARM Mali GPU) on rakendatud Vulkani laiendused:
- VK_EXT_vertex_input_dynamic_state/vertexInputDynamicState
- VK_EXT_vertex_input_dynamic_state
- VK_EXT_vertex_attribute_divisor
- VK_KHR_maintenance4
- VK_KHR_maintenance5
- VK_EXT_direct_mode_display
- VK_EXT_extended_dynamic_state
- VK_KHR_shader_quad_control
- VK_KHR_draw_indirect_count
- VK_KHR_shader_integer_dot_product
- VK_KHR_shader_terminate_invocation
- VK_EXT_shader_demote_to_helper_invocation
- VK_EXT_shader_replicated_composites
- VK_EXT_depth_bias_control
- VK_EXT_primitive_topology_list_restart
- VK_EXT_image_2d_view_of_3d
- VK_EXT_texel_buffer_alignment
- VK_EXT_shader_subgroup_ballot
- VK_EXT_shader_subgroup_vote
- VK_KHR_load_store_op_none
- VK_EXT_load_store_op_none
- VK_EXT_inline_uniform_block
- VK_EXT_texture_compression_astc_hdr
- VK_EXT_depth_clamp_zero_one
- VK_KHR_depth_clamp_zero_one
- VK_EXT_depth_clip_control
- VK_KHR_unified_image_layouts
- VK_KHR_vulkan_memory_model
- VK_EXT_descriptor_indexing
- VK_KHR_maintenance6
- VK_KHR_shader_clock
- VK_KHR_shader_atomic_int64
- VK_KHR_calibrated_timestamps
- VK_EXT_non_seamless_cube_map
- VK_ARM_shader_core_properties
- VK_KHR_host_image_copy
Allikas: opennet.ru
