Nach drei Monaten Entwicklung wurde die freie Implementierung der OpenGL- und Vulkan-API — Mesa 26.0.0 — veröffentlicht. Die erste Version der Mesa 26.0.0-Reihe hat den Status experimentell. Nach finaler Stabilisierung des Codes wird die stabile Version 26.0.1 veröffentlicht.
In Mesa 26.0 wird die 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, HoneyKrisp (hk) für Apple-GPUs, Turnip für Qualcomm-GPUs, PanVK für ARM Mali-GPUs, im Software-Rasterizer lavapipe (lvp) und im Emulationsmodus (vn) angeboten. In den v3dv-Treibern (Broadcom VideoCore GPU für Raspberry Pi 4+) und dzn (Implementierung von Vulkan über Direct3D 12) wird Vulkan 1.0 unterstützt, in dem kk-Treiber (KosmicKrisp, Vulkan über Metal) — Vulkan 1.1, und im pvr-Treiber (GPU Imagination PowerVR) — Vulkan 1.2.
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:
- Der RadeonSI-Treiber wurde auf die Verwendung des Intermediate Representation (IR) von NIR-Shadern und des von Valve entwickelten ACO-Shader-Compilers umgestellt, der eine Alternative zum LLVM-Shader-Compiler darstellt. Der ACO-Backend zielt darauf ab, eine möglichst optimale Codegenerator für Shader von Spieleanwendungen zu bieten und gleichzeitig eine sehr hohe Kompilierungsgeschwindigkeit zu erreichen. Die Verwendung von ACO ermöglicht es, die Shader-Kompilierungsgeschwindigkeit zu erhöhen, den Speicherverbrauch zu senken, die Größe der Shader-Binärdarstellung zu verringern und optimierteren Code zu generieren. Im Vergleich zu LLVM hat die Verwendung des ACO-Backends die Kompilierungszeiten für Shader um bis zu 8 Mal reduziert, was die Startzeit von Anwendungen erheblich verkürzt.
- Der Vulkan-Treiber KosmicKrisp (kk) wurde vorgestellt, der die Grafikschnittstelle Vulkan über die von Apple entwickelte Metal-API umsetzt, die in macOS verwendet wird. Der Treiber wurde von LunarG für den Einsatz auf Mac-Computern mit Apple Silicon-Chips erstellt.
- Im Vulkan-Treiber RADV (AMD GPU) wurde die Leistung des Ray Tracings erheblich verbessert.
- Die Unterstützung für die veralteten Optionen invariantgeom, nodynamicbounds, nongg_gs und splitfma wurde in der Umgebungsvariable RADV_DEBUG eingestellt. An ihrer Stelle sollten in driconf die Variablen radv_invariant_geom, radv_no_dynamic_bounds, radv_disable_ngg_gs und radv_split_fma verwendet werden.
- Im panfrost-Treiber (ARM Mali GPU) wurde die Unterstützung für die OpenGL-Erweiterung GL_EXT_shader_pixel_local_storage hinzugefügt.
- Unterstützung für Vulkan-Erweiterungen wurde hinzugefügt:
- VK_KHR_relaxed_block_layout für pvr
- VK_KHR_storage_buffer_storage_class für pvr
- VK_EXT_external_memory_acquire_unmodified für panvk
- VK_EXT_discard_rectangles für NVK
- VK_KHR_present_id für HoneyKrisp
- VK_KHR_present_id2 für HoneyKrisp
- VK_KHR_present_wait für HoneyKrisp
- VK_KHR_present_wait2 für HoneyKrisp
- VK_KHR_maintenance10 für ANV, NVK, RADV
- VK_EXT_shader_uniform_buffer_unsized_array für ANV, HK, NVK, RADV
- VK_EXT_device_memory_report für panvk
- VK_VALVE_video_encode_rgb_conversion für radv
- VK_EXT_custom_resolve für RADV
- VK_EXT_image_drm_format_modifier für panvk/v7
- VK_KHR_sampler_ycbcr_conversion für panvk/v7
- VK_KHR_surface_maintenance1 für anv, hk, lvp, nvk, radv, tu, v3dv, vn
- VK_KHR_swapchain_maintenance1 für anv, hk, lvp, nvk, radv, tu, v3dv, vn
-
Quelle: opennet.ru
