Release von Mesa 25.2, einer freien Implementierung von OpenGL und Vulkan

Nach drei Monaten Entwicklung wurde die freie Implementierung der API OpenGL und Vulkan - Mesa 25.2.0 - veröffentlicht. Die erste Version der Reihe Mesa 25.2.0 hat den Status experimentell - nach der abschließenden Stabilisierung des Codes wird die stabile Version 25.2.1 veröffentlicht.

In Mesa 25.2 ist Unterstützung für die Grafik-API Vulkan 1.4 in den ANV-Treibern für Intel-GPUs, RADV für AMD-GPUs, NVK für NVIDIA-GPUs, Asahi für Apple-GPUs, Turnip für Qualcomm-GPUs, PanVK für ARM Mali-GPUs, im Software-Rasterizer lavapipe (lvp) und im Emulationsmodus (vn) verfügbar. In den v3dv-Treibern (Broadcom VideoCore für Raspberry Pi 4+) und dzn (Implementierung von Vulkan über Direct3D 12) wird Vulkan 1.0 unterstützt.

In Mesa wird auch vollständige Unterstützung für OpenGL 4.6 für die Iris-Treiber (Intel GPU der Generation 8+), radeonsi (AMD), Crocus (alte Intel-GPUs der Generation 4-7), AMD (r600), zink, llvmpipe, virgl (virtuelle GPU Virgil3D für QEMU/KVM), freedreno (Qualcomm Adreno), d3d12 (Schicht zur Ausführung von OpenGL über DirectX 12) und asahi (GPU AGX, verwendet in den Apple M1- und M2-Chips) bereitgestellt. Unterstützung für OpenGL 4.5 ist für NVIDIA-GPUs (nvc0) verfügbar. Unterstützung für OpenGL 3.3 ist in den softpipe (Software-Rasterizer)- und nv50 (NVIDIA NV50)-Treibern vorhanden. In den panfrost-(GPU ARM Mali)- und v3d-(GPU Broadcom VideoCore)-Treibern wird OpenGL 3.1 unterstützt.

Hauptneuheiten:

  • Im Vulkan-Treiber PanVK für Geräte mit ARM Mali-GPUs der V10-Architektur, wie Mali-G610 und Mali-G310, wurde Unterstützung für die Grafik-API Vulkan 1.4 hinzugefügt (zuvor wurde Vulkan 1.2 unterstützt).
  • Im OpenGL-Treiber r600 für alte AMD-GPUs (bis einschließlich Radeon HD 7000-Serie) wurde Unterstützung für die Grafik-API OpenGL 4.6 hinzugefügt (zuvor wurde OpenGL 4.5 unterstützt).
  • Im Vulkan-Treiber NVK wurde Unterstützung für NVIDIA-GPUs auf Basis der Mikroarchitekturen Blackwell und Kepler (GTX 600/700) hinzugefügt. Für die Blackwell-GPUs wurde Unterstützung für Vulkan 1.4 realisiert, während für die Kepler-GPUs die API Vulkan 1.2 (neuere Vulkan-Versionen werden aufgrund von Hardwarebeschränkungen nicht unterstützt) bereitgestellt wird. Für NVIDIA-GPUs auf Basis der Mikroarchitektur Maxwell wurde volle Kompatibilität mit Vulkan 1.4 gewährleistet.
  • Der Shader-Compiler NAK, der in Rust geschrieben und im NVK-Treiber verwendet wird, wurde optimiert. In die Abhängigkeiten des NVK-Treibers wurde das crate-Paket rustc-hash aufgenommen, wodurch die Kompilierungszeit der Shader um etwa 12 % verkürzt werden konnte.
  • Die Unterstützung für OpenGL auf NVIDIA Maxwell, Pascal und Volta GPUs wurde standardmäßig vom Nouveau-Treiber auf die Verwendung des Zink-Treibers in Verbindung mit dem Vulkan-Treiber NVK umgeschaltet. Zink wird auch verwendet, um die OpenGL-Unterstützung auf Systemen mit Blackwell-GPUs bereitzustellen (der Nouveau OpenGL-Treiber plant nicht, Unterstützung für Blackwell-GPUs hinzuzufügen). Zink bietet eine Implementierung von OpenGL 4.6 über Vulkan, die hardwarebeschleunigtes OpenGL auf Geräten ermöglicht, die die Vulkan-API unterstützen. Die Leistung von Zink ist vergleichbar mit der von nativen OpenGL-Implementierungen.
  • Die Leistung des Vulkan-Treibers Honeykrisp für die in Apple M1/M2-Chips gelieferten Grafikkarten wurde erheblich verbessert.
  • Die Vulkan-Treiber RADV (AMD GPUs) und ANV (Intel) haben die Unterstützung für hardwarebeschleunigte VP9-Video-Dekodierung hinzugefügt. Diese Funktionalität wurde durch die Vulkan-Erweiterung VK_KHR_video_decode_vp9 bereitgestellt, die im Frühjahr von der Vulkan-WG entwickelt wurde. Hardwarebeschleunigung ist für AMD GPUs ab der Navi 10-Architektur auf Basis der RDNA 1.0 verfügbar.
  • Im Vulkan-Treiber RADV für AMD GPUs auf der Grundlage der RDNA3- und RDNA4-Architekturen wurde die Leistung bei Raytracing erhöht und die Unterstützung der FSR 4 (FidelityFX Super Resolution)-Technologie verbessert. Es wurde die Möglichkeit hinzugefügt, Prioritäten für die Befehlswarteschlange einzustellen (OpenCL-Erweiterung cl_khr_priority_hints).
  • Im OpenGL-Treiber radeonsi wurde für alte AMD GPU-Familien Evergreen und Cayman Unterstützung für OpenGL 4.6 implementiert. Unterstützt wird jetzt auch Shared Virtual Memory (SVM, Shared Virtual Memory).
  • Im OpenGL-Treiber Iris und Vulkan-Treiber ANV wurde Unterstützung für GPUs implementiert, die in Intel Wildcat Lake-Prozessoren verwendet werden. In Iris und ANV wurde auch stabile Unterstützung für Intel-GPUs auf Basis der Xe3-Architektur, die in Panther Lake-Prozessoren eingesetzt wird, angekündigt. Die Unterstützung der GPU-Familien Xe2 und Xe3 wurde verbessert. Im Iris-Treiber wurde die Unterstützung für Shared Virtual Memory (SVM, Shared Virtual Memory) hinzugefügt.
  • Im OpenGL-Treiber freedreno wurde die Unterstützung für die GPU Adreno X1-45 hinzugefügt, die in SoCs von Qualcomm Snapdragon X Plus verwendet wird.
  • Die Entwicklung des OpenCL-Treibers Rusticl, der in Rust geschrieben ist und den Clover-Treiber ersetzt, wurde fortgesetzt. In Rusticl wurde Unterstützung für SVM (Shared Virtual Memory), Bilder im Farbraum sRGB (Formate CL_sRGBA und CL_sBGRA) und das FP16-Format (OpenCL-Erweiterung cl_khr_fp16 für die Treiber asahi, freedreno, llvmpipe, panfrost, radeonsi und zink) hinzugefügt.
  • Gallium3D-Frontend MFT (Media Foundation Transform) hinzugefügt, das es ermöglicht, den D3D12 (Direct3D 12)-Treiber für die Implementierung anderer Grafik-APIs zu verwenden. Entwickelt von Microsoft für WSL (Windows Subsystem for Linux).
  • Unterstützung für die DRI2 (Direct Rendering Infrastructure) Infrastruktur wurde entfernt, die durch die DRI3-Schnittstelle ersetzt wurde, die direkten Zugang zur Grafikkarte mit DMA-BUF ermöglicht. Als Grund wird angegeben, dass die DRI3-Schnittstelle seit über 10 Jahren existiert, DRI2 bereits veraltet ist und alle unterstützten GPU-Treiber die DRI3-Schnittstelle implementiert haben.
  • Unterstützung für veraltete Methoden zur Zusammenarbeit mit Puffer wurde eingestellt – es bleibt nur die Möglichkeit der Nutzung von dma-buf.
  • Unterstützung für libX11-Versionen, die keinen sicheren Betrieb in Mehrprozessanwendungen gewährleisten, wurde eingestellt. Es wird nur Unterstützung für libX11 1.8 (April 2022) und neuere Versionen, die den Aufruf XInitThreads() verwenden, beibehalten.
  • Die Unterstützung der EGL-Erweiterung EGL_WL_bind_wayland_display, die für Wayland implementiert wurde, wurde als veraltet erklärt und standardmäßig deaktiviert. Um Pixelpuffer zwischen Client und Server Wayland auszutauschen, wird empfohlen, das Wayland-Protokoll linux_dmabuf zu verwenden. Um die Unterstützung wiederherzustellen, muss während des Builds das Flag „-Dlegacy-wayland=bind-wayland-display“ angegeben werden. Xwayland unterstützt einen korrekten Betrieb ohne EGL_WL_bind_wayland_display seit der Version 24.1 (Mai 2024).
  • Der veraltete OpenCL-Treiber Clover wurde entfernt. Für OpenCL sollte der funktionsreichere Treiber RustiCL verwendet werden, der mehr Versionen von OpenCL unterstützt.
  • Im ANV (Intel) Treiber wurde die Vulkan-Erweiterung implementiert:
    • VK_KHR_shader_bfloat16
  • Im RADV (AMD) Treiber wurden die Vulkan-Erweiterungen implementiert:
    • 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
  • Im NVK (NVIDIA) Treiber wurden die Vulkan-Erweiterungen implementiert:
    • VK_EXT_zero_initialize_device_memory
    • VK_KHR_cooperative_matrix
  • Im zink Treiber wurde die Vulkan-Erweiterung implementiert:
    • NV_timeline_semaphore
  • Im v3d (GPU Broadcom VideoCore für Raspberry Pi 4+) Treiber wurde die OpenGL-Erweiterung implementiert:
    • on v3d GL_ARB_blend_func_extended
  • Im panfrost Treiber wurden die OpenGL-Erweiterungen implementiert:
    • GL_KHR_texture_compression_astc_hdr
    • GL_ARB_shader_clock
    • GL_EXT_shader_realtime_clock
  • Im asahi (Apple) Treiber wurde die OpenGL-Erweiterung implementiert:
    • GL_KHR_texture_compression_astc_hdr
  • Im r600 (AMD) Treiber wurden die OpenGL-Erweiterungen implementiert
    • GL_EXT_window_rectangles
    • GL_EXT_shader_image_load_store
  • Im PanVK (GPU ARM Mali) Treiber wurden die Vulkan-Erweiterungen implementiert:
    • 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

Quelle: opennet.ru

60GB SSD 8Gb DDR4