Die freie Implementierung der OpenGL- und Vulkan-APIs wurde veröffentlicht — Mesa 22.3.0. Die erste Version des Branches Mesa 22.3.0 hat einen experimentellen Status — eine stabile Version 22.3.1 wird nach der endgültigen Stabilisierung des Codes veröffentlicht.
In Mesa 22.3 ist Unterstützung für die Grafik-API Vulkan 1.3 in den Treibern anv für Intel-GPUs, radv für AMD-GPUs, tu für Qualcomm-GPUs und im Emulator-Modus (vn) verfügbar. Unterstützung für Vulkan 1.1 ist im Software-Rasterizer lavapipe (lvp) implementiert, während Vulkan 1.0 im Treiber v3dv (Broadcom VideoCore VI GPU von Raspberry Pi 4) verfügbar ist.
Mesa bietet außerdem umfassende Unterstützung für OpenGL 4.6 in den Treibern 965, iris (Intel), radeonsi (AMD), zink und llvmpipe. Unterstützung für OpenGL 4.5 steht für AMD GPUs (r600), NVIDIA (nvc0) und Qualcomm Adreno (freedreno) zur Verfügung, OpenGL 4.3 für virgl (virtueller GPU Virgil3D für QEMU/KVM) und OpenGL 4.2 im d3d12 Treiber (Schicht zur Bereitstellung von OpenGL über DirectX 12).
Hauptneuheiten:
- Im freedreno-Treiber für Qualcomm Adreno-GPUs wird Unterstützung für die Grafik-API OpenGL 4.5 bereitgestellt, während der Emulator-Treiber (vn) Unterstützung für die API Vulkan 1.3 erhält.
- Im Panfrost-Treiber wurde die Möglichkeit zur Shader-Caching auf der Festplatte implementiert und Unterstützung für die GPU Mali T620 hinzugefügt. Der Treiber ist mit der OpenGL-Spezifikation 3.1 und OpenGL ES 3.1 kompatibel.
- Im Vulkan-Treiber RADV (AMD) wurde Unterstützung für die GPU GFX11/RDNA3 (Radeon RX 7000-Serie) hinzugefügt. Der Code wurde für Raytracing optimiert. Es wurden Unterstützung für die Pixel-Formate R8G8B8, B8G8R8 und R16G16B16 sowie 64-Bit-Formate für Vertex-Buffer hinzugefügt. Unterstützung für das Flag extendedDynamicState2PatchControlPoints wurde implementiert, was die Unterstützung der Erweiterung VK_EXT_extended_dynamic_state2 definiert. Der Radeon Raytracing Analyzer wurde integriert.
- Im Lieferumfang ist der Rusticl-Treiber enthalten, der die OpenCL 3.0-Spezifikation umsetzt, welche die API und Erweiterungen der C-Sprache zur Organisation plattformübergreifender paralleler Berechnungen definiert. Der Treiber ist in Rust geschrieben, entwickelt unter Verwendung der von Mesa bereitgestellten Gallium-Schnittstelle und fungiert als analoger Ersatz für das in Mesa vorhandene OpenCL-Frontend Clover. Clover ist seit langem in einem vernachlässigten Zustand und rusticl wird als dessen zukünftiger Ersatz positioniert. Die Unterstützung von Rust und rusticl ist standardmäßig deaktiviert und erfordert den Build mit expliziten Optionen „-D gallium-rusticl=true -Dllvm=enabled -Drust_std=2021“. Für den Build sind zusätzlich der Rust-Compiler rustc, der Bindungs-Generator bindgen, LLVM, das SPIRV-Tools Toolkit und der SPIRV-LLVM-Translator erforderlich.
- Im RadeonSI-Treiber ist standardmäßig die Unterstützung für multithreaded Rendering über OpenGL aktiviert.
- Mesa-DB wurde eingeführt, ein neuer Typ des Shader-Caches, der Daten in einer Datei speichert.
- Es wurde die Unterstützung für folgende OpenGL-Erweiterungen hinzugefügt:
- GL_ARB_shader_clock für llvmpipe.
- GL_KHR_blend_equation_advanced_coherent für zink.
- GL_NV_shader_atomic_float für llvmpipe.
- Unterstützung für Vulkan-Erweiterungen wurde hinzugefügt:
- VK_KHR_shader_clock für lavapipe.
- VK_EXT_attachment_feedback_loop_layout für RADV, lavapipe.
- VK_KHR_global_priority für RADV.
- VK_EXT_load_store_op_none für RADV.
- VK_EXT_mutable_descriptor_type für RADV.
- VK_EXT_shader_atomic_float für lvp.
- VK_EXT_shader_atomic_float2 für lvp.
- VK_EXT_image_robustness für v3dv.
- VK_EXT_extended_dynamic_state3 für lavapipe, RADV und ANV.
- VK_EXT_extended_dynamic_state2 für RADV.
- VK_EXT_pipeline_robustness für v3dv.
- VK_EXT_mesh_shader für ANV.
Quelle: opennet.ru
