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

Nach drei Monaten Entwicklung wurde die Veröffentlichung der freien Implementierung der APIs OpenGL und Vulkan — Mesa 25.2.0 — präsentiert. Die erste Version des Branches Mesa 25.2.0 hat einen experimentellen Status — nach der endgültigen Stabilisierung des Codes wird die stabile Version 25.2.1 veröffentlicht.

In Mesa 25.2 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, PanVK für ARM Mali-GPUs, in der Software-Rasterisierung lavapipe (lvp) und im Emulationsmodus (vn) verfügbar. In den Treibern v3dv (Broadcom VideoCore GPU für Raspberry Pi 4+) und dzn (Implementation von Vulkan über Direct3D 12) wird Vulkan 1.0 unterstützt.

Mesa bietet zudem vollständige Unterstützung für OpenGL 4.6 in den Treibern iris (Intel GPUs Gen 8+), radeonsi (AMD), Crocus (alte Intel GPUs Gen4-Gen7), AMD (r600), zink, llvmpipe, virgl (virtuelle GPU Virgil3D für QEMU/KVM), freedreno (Qualcomm Adreno), d3d12 (Schicht zur Nutzung von OpenGL über DirectX 12) und asahi (GPU AGX, die in den Apple M1 und M2 Chips verwendet wird). Die 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 Treibern softpipe (Software-Rasterizer) und nv50 (NVIDIA NV50) vorhanden. In den Treibern panfrost (GPU ARM Mali) und v3d (GPU Broadcom VideoCore) wird OpenGL 3.1 unterstützt.

Hauptneuheiten:

  • Im Vulkan-Treiber PanVK für ARM Mali GPU-Geräte der V10-Architektur, wie Mali-G610 und Mali-G310, wurde die 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 ältere AMD-GPUs (bis einschließlich Radeon HD 7000) wurde die Unterstützung für die Grafik-API OpenGL 4.6 hinzugefügt (zuvor wurde OpenGL 4.5 unterstützt).
  • Im Vulkan-Treiber NVK wurde die Unterstützung für NVIDIA-GPUs auf Basis der Mikroarchitekturen Blackwell und Kepler (GTX 600/700) hinzugefügt. Für die Blackwell-GPUs ist die Unterstützung für Vulkan 1.4 implementiert, während die Kepler-GPUs die API Vulkan 1.2 unterstützen (neuere Vulkan-Versionen werden aufgrund von Hardwarebeschränkungen nicht unterstützt). Für NVIDIA-GPUs basierend auf der Maxwell-Mikroarchitektur wurde die vollständige Kompatibilität mit Vulkan 1.4 gewährleistet.
  • Die Funktionsweise des Shader-Compilers NAK, geschrieben in Rust und im NVK-Treiber verwendet, wurde optimiert. Der crate-Paket rustc-hash wurde in die Abhängigkeiten des NVK-Treibers aufgenommen, was zu einer Reduzierung der Shader-Kompilierungszeit um etwa 12 % führte.
  • Die OpenGL-Unterstützung für NVIDIA Maxwell, Pascal und Volta-GPUs wurde standardmäßig vom Nouveau-Treiber auf den Zink-Treiber in Kombination mit dem Vulkan-Treiber NVK umgestellt. Zink wird auch zur Unterstützung von OpenGL auf Systemen mit Blackwell-GPUs eingesetzt (eine Unterstützung der Blackwell-GPU im Nouveau-OpenGL-Treiber ist nicht geplant). Zink bietet eine OpenGL 4.6-Implementierung über Vulkan und ermöglicht so hardwarebeschleunigtes OpenGL auf Geräten, die die Vulkan-API unterstützen. Die Leistung von Zink ist vergleichbar mit der nativer OpenGL-Implementierungen.
  • Die Leistung des Vulkan-Treibers Honeykrisp für Grafikkarten in den Apple M1/M2-Chips wurde erheblich verbessert.
  • Die Vulkan-Treiber RADV (AMD GPUs) und ANV (Intel) haben die Unterstützung für hardwarebeschleunigte Videodekodierung im VP9-Format hinzugefügt. Diese Möglichkeit wurde durch die Vulkan-Erweiterung VK_KHR_video_decode_vp9 realisiert, die im Frühjahr von der Vulkan-Arbeitsgruppe vorbereitet wurde. Hardwarebeschleunigung ist für AMD GPUs ab der Navi 10-Architektur der RDNA 1.0 verfügbar.
  • Der Vulkan-Treiber RADV für AMD GPUs auf Basis der Mikroarchitekturen RDNA3 und RDNA4 bietet verbesserte Leistung bei der Raytracing-Verarbeitung sowie eine erweiterte Unterstützung der FSR 4-Technologie (FidelityFX Super Resolution). Zudem wurde die Möglichkeit hinzugefügt, Prioritäten für die Kommando-Queue anzupassen (OpenCL-Erweiterung cl_khr_priority_hints).
  • Im OpenGL-Treiber radeonsi für ältere AMD GPU-Familien wie Evergreen und Cayman wurde die Unterstützung für OpenGL 4.6 implementiert. Außerdem wurde die Unterstützung für Shared Virtual Memory (SVM) eingeführt.
  • Im OpenGL-Treiber Iris und im Vulkan-Treiber ANV wurde die Unterstützung für GPUs, die in Intel-Prozessoren der Wildcat Lake-Reihe zum Einsatz kommen, integriert. Sowohl Iris als auch ANV weisen nun eine stabile Unterstützung für Intel-GPUs auf, die auf der Xe3-Architektur basieren und in den Panther Lake-Prozessoren genutzt werden. Die Unterstützung der GPU-Familien Xe2 und Xe3 wurde ebenfalls verbessert. Der Iris-Treiber bietet nun Unterstützung für Shared Virtual Memory (SVM).
  • Im OpenGL-Treiber freedreno wurde die Unterstützung für die Adreno X1-45 GPU hinzugefügt, die in dem SoC Qualcomm Snapdragon X Plus verwendet wird.
  • Die Entwicklung des OpenCL-Treibers Rusticl, der in Rust geschrieben wurde und den Clover-Treiber ersetzt, wurde fortgesetzt. Rusticl unterstützt jetzt SVM (Shared Virtual Memory), Farbprofile im sRGB-Farbraum (Formate CL_sRGBA und CL_sBGRA) sowie das FP16-Format (OpenCL-Erweiterung cl_khr_fp16 für die Treiber asahi, freedreno, llvmpipe, panfrost, radeonsi und zink).
  • Es wurde das Gallium3D-Frontend MFT (Media Foundation Transform) hinzugefügt, das die Verwendung des D3D12 (Direct3D 12) Treibers zur Implementierung anderer Grafik-APIs ermöglicht. Entwickelt von Microsoft für WSL (Windows Subsystem for Linux).
  • Die Unterstützung der DRI2 (Direct Rendering Infrastructure) wurde entfernt, dessen Nachfolger DRI3 zur Einrichtung des direkten Zugangs zum Videoadapter nun DMA-BUF verwendet. Als Grund wird angegeben, dass die DRI3-Schnittstelle seit über 10 Jahren existiert, DRI2 längst obsolet ist und alle unterstützten GPU-Treiber bereits die DRI3-Schnittstelle implementiert haben.
  • Die Unterstützung veralteter Methoden zur Zusammenarbeit mit Buffern wurde eingestellt – es bleibt nur die Möglichkeit zur Verwendung von dma-buf.
  • Die Unterstützung für libX11-Versionen, die keinen sicheren Betrieb in Mehrthread-Anwendungen gewährleisten, wurde eingestellt. Es wird nur die Unterstützung von libX11 1.8 (April 2022) und neueren Versionen, die den Aufruf XInitThreads() verwenden, aufrechterhalten.
  • 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. Für den Austausch von Pixelpuffern zwischen Client und dem Server durch Wayland wird empfohlen, das Wayland-Protokoll linux_dmabuf zu verwenden. Um die Unterstützung wiederherzustellen, muss während des Builds der Flag „-Dlegacy-wayland=bind-wayland-display“ angegeben werden. Xwayland funktioniert ab Version 24.1 (Mai 2024) korrekt ohne EGL_WL_bind_wayland_display.
  • Der veraltete OpenCL-Treiber Clover wurde entfernt. Für OpenCL sollte der Treiber RustiCL verwendet werden, der funktionaler ist und mehr OpenCL-Versionen unterstützt.
  • Im ANV-Treiber (Intel) wurde die Vulkan-Erweiterung implementiert:
    • VK_KHR_shader_bfloat16
  • Im RADV-Treiber (AMD) 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-Treiber (NVIDIA) 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-Treiber (GPU Broadcom VideoCore für Raspberry Pi 4+) wurde das OpenGL-Extension implementiert:
    • on v3d GL_ARB_blend_func_extended
  • Im panfrost-Treiber wurden OpenGL-Extensions implementiert:
    • GL_KHR_texture_compression_astc_hdr
    • GL_ARB_shader_clock
    • GL_EXT_shader_realtime_clock
  • Im asahi-Treiber (Apple) wurde das OpenGL-Extension implementiert:
    • GL_KHR_texture_compression_astc_hdr
  • Im r600-Treiber (AMD) wurden OpenGL-Extensions implementiert
    • GL_EXT_window_rectangles
    • GL_EXT_shader_image_load_store
  • Im PanVK-Treiber (GPU ARM Mali) wurden Vulkan-Extensions 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

Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen 🔥 Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen | ProHoster