Nach drei Monaten Entwicklung wurde die Version 25.1.0 der freien Implementierung der APIs OpenGL und Vulkan veröffentlicht. Der erste Release der Mesa 25.1.0 Reihe hat den Status experimentell – nach der abschließenden Stabilisierung des Codes wird die stabile Version 25.1.1 veröffentlicht.
In Mesa 25.1 ist die Unterstützung des Grafik-APIs Vulkan 1.4 in den Treibern ANV für Intel-GPUs, RADV für AMD-GPUs, NVK für NVIDIA-GPUs, Asahi für Apple-GPUs, Turnip für Qualcomm-GPUs, im Software-Rasterizer lavapipe (lvp) und im Emulationsmodus (vn) verfügbar. Im PanVK-Treiber für ARM Mali-GPUs wird Vulkan 1.2 unterstützt, während in den Treibern v3dv (GPU Broadcom VideoCore für Raspberry Pi 4+) und dzn (Implementierung von Vulkan über Direct3D 12) Vulkan 1.0 verfügbar ist.
In Mesa wird zudem volle Unterstützung für OpenGL 4.6 in den Treibern iris (Intel Gen 8+ GPU), radeonsi (AMD), Crocus (ältere Intel Gen4-Gen7 GPUs), zink, llvmpipe, virgl (virtuelle GPU Virgil3D für QEMU/KVM), freedreno (Qualcomm Adreno), d3d12 (Schnittstelle zur Ausführung von OpenGL über DirectX 12) und asahi (AGX-GPU, die in Apple M1 und M2 Chips verwendet wird) bereitgestellt. Unterstützung für OpenGL 4.5 ist für AMD (r600) und NVIDIA (nvc0) GPUs verfügbar. Unterstützung für OpenGL 3.3 ist in den Treibern softpipe (Software-Rasterizer) und nv50 (NVIDIA NV50) vorhanden. In den Treibern panfrost (ARM Mali GPU) und v3d (Broadcom VideoCore GPU) wird OpenGL 3.1 unterstützt.
Hauptneuheiten:
- Der PanVK-Treiber unterstützt nun die Grafik-API Vulkan 1.2 für ARM Mali GPUs auf Basis der Mikroarchitektur v10+. Es wurden Unterstützung für die Farbräume YCbCr hinzugefügt. Typen wie storagePushConstant16, storageInputOutput16 und shaderFloat16 sind implementiert. Unterstützung für die GPUs Mali G720 und G725 wurde hinzugefügt. Der MSAA (Multisample Anti-Aliasing) Modus unterstützt jetzt 8 und 16 Farbproben pro Pixel.
- Der OpenGL-Treiber Panfrost unterstützt jetzt die GPUs Mali G720, G725 und G925.
- Im Emulator-Modus (vn) wird nun API Vulkan 1.4 unterstützt.
- Die Entwicklung des Asahi-Treibers für die Apple AGX GPUs, die in Apple Silicon Chips verwendet werden, wurde vollständig nach Mesa verlagert, und sein UAPI ist jetzt im Linux-Kernel enthalten. Distributionen müssen keine separaten Builds dieses Treibers mehr verwenden.
- Der Vulkan-Treiber NVK ist standardmäßig für die NVIDIA GPUs Maxwell (GTX 700/800/900), Pascal (GTX 1000) und Volta (TITAN V) aktiviert, für die eine vollständige Unterstützung von Vulkan 1.4 bereitgestellt wird. Zuvor wurde die Kompatibilität mit Vulkan 1.4 in NVK nur für NVIDIA GPUs auf Basis der Turing Mikroarchitektur (Serien GeForce GTX 16xx, RTX 20xx und Quadro RTX), Ampere (Serien GeForce RTX 30xx und RTX A2000/4000/5000/6000) und Ada (Serien GeForce RTX 4xxx, RTX 4000 SFF, RTX 4xxx/5000/6000 Ada) gewährleistet. Unterstützung für die Vulkan-Erweiterung VK_MESA_image_alignment_control wurde hinzugefügt.
- Die Unterstützung von OpenGL für NVIDIA-GPUs auf Basis der Turing-Mikroarchitektur wurde standardmäßig vom Nouveau-Treiber (nvc0) auf den OpenGL-Treiber Zink in Verbindung mit dem Vulkan-Treiber NVK umgeschaltet. Zink bietet eine OpenGL 4.6-Implementierung über Vulkan und ermöglicht hardwarebeschleunigtes OpenGL auf Geräten, die die Vulkan-API unterstützen. Die Leistung von Zink ist vergleichbar mit der nativer OpenGL-Implementierungen.
- Im Integrationsinterface der Vulkan-Grafik-API mit Fenstersystemen (WSI, Windowing System Integration) wurde die Unterstützung für das Wayland-Protokoll zur Farbverwaltung implementiert, die Möglichkeiten zur Farbsteuerung und Unterstützung für einen erweiterten Dynamikbereich (HDR, High Dynamic Range) bietet.
- Im Vulkan-Treiber ANV (Intel) wurde die Unterstützung für Intel GPUs auf Basis der Xe2-Architektur verbessert, darunter Intel Core Ultra Xe2 mit integrierter Intel Arc-Grafik und die diskreten GPUs Intel Arc B580/B570 'Battlemage'.
- Im Vulkan-Treiber RADV (AMD) wurde die Unterstützung für die Radeon RX 9000-Serie (RDNA4/GFX12) verbessert. Ein Modus für die Videokodierung mit niedriger Latenz wurde hinzugefügt. Zudem wird die Unterstützung der Vulkan-Erweiterungen VK_EXT_device_memory_report und VK_EXT_sample_locations bereitgestellt.
- Im OpenGL-Treiber Etnaviv für Vivante GPUs wurde die Unterstützung der OpenGL-Erweiterung KHR_partial_update hinzugefügt.
- Im OpenGL-Treiber v3d (GPU Broadcom VideoCore für Raspberry Pi) wurde die Unterstützung für die OpenGL-Erweiterungen EXT_shader_framebuffer_image_fetch, EXT_shader_framebuffer_image_fetch_coherent, KHR_blend_equation_advanced und KHR_blend_equation_advanced_coherent hinzugefügt.
- Der OpenCL-Treiber Clover wurde als veraltet erklärt, sein Nachfolger ist der Rusticl-Treiber, der in der Programmiersprache Rust geschrieben wurde.
- Der Rusticl-Treiber unterstützt jetzt die OpenCL-Erweiterung cl_khr_spirv_linkonce_odr.
- Der PanVK-Treiber implementiert jetzt folgende Vulkan-Erweiterungen:
- VK_KHR_depth_stencil_resolve
- VK_KHR_separate_depth_stencil_layouts
- VK_EXT_separate_stencil_usage
- VK_KHR_sampler_ycbcr_conversion
- VK_EXT_ycbcr_2plane_444_formats
- VK_EXT_ycbcr_image_arrays
- VK_KHR_imageless_framebuffer
- VK_KHR_uniform_buffer_standard_layout
- VK_EXT_border_color_swizzle
- VK_KHR_shader_subgroup_uniform_control_flow
- VK_KHR_shader_maximal_reconvergence
- VK_KHR_shader_subgroup_extended_types
- VK_KHR_display
- VK_EXT_display_control
- VK_KHR_line_rasterization
- VK_EXT_line_rasterization
- VK_KHR_shader_float_controls
- VK_KHR_shader_float_controls2
- VK_KHR_spirv_1_4
- VK_KHR_dynamic_rendering_local_read
- VK_EXT_subgroup_size_control
- VK_KHR_format_feature_flags2
- VK_EXT_direct_mode_display
- Der Status-Tracker gallium-nine, der die Unterstützung für die Direct3D 9 API bietet, wurde als veraltet erklärt und ist für die Entfernung in der nächsten Version geplant.
- Der Status-Tracker gallium-xa, der die Unterstützung für das virtuelle GPU VMWare (vmwgfx) bereitstellt, wurde ebenfalls als veraltet erklärt und ist für die Entfernung in der nächsten Version geplant.
Quelle: opennet.ru
