Veröffentlichung von Mesa 22.3, einer kostenlosen Implementierung von OpenGL und Vulkan

Die Veröffentlichung der kostenlosen Implementierung der OpenGL- und Vulkan-APIs – Mesa 22.3.0 – wurde veröffentlicht. Die erste Veröffentlichung des Mesa 22.3.0-Zweigs hat einen experimentellen Status – nach der endgültigen Stabilisierung des Codes wird eine stabile Version 22.3.1 veröffentlicht.

Mesa 22.3 bietet Unterstützung für die Vulkan 1.3-Grafik-API in anv für Intel-GPUs, radv für AMD-GPUs, tu für Qualcomm-GPUs und im Emulatormodus (vn). Die Unterstützung von Vulkan 1.1 ist im Software-Rasterizer Lavapipe (LVP) und Vulkan 1.0 im v3dv-Treiber (Broadcom VideoCore VI GPU von Raspberry Pi 4) implementiert.

Mesa bietet außerdem vollständige OpenGL 4.6-Unterstützung für die Treiber 965, Iris (Intel), Radeonsi (AMD), Zink und llvmpipe. OpenGL 4.5-Unterstützung ist für AMD- (r600), NVIDIA- (nvc0) und Qualcomm Adreno- (freedreno) GPUs, OpenGL 4.3 für virgl (virgil3D virtuelle GPU für QEMU/KVM) und OpenGL 4.2 für den d3d12-Treiber (eine Schicht zum Organisieren von OpenGL) verfügbar arbeiten auf DirectX 12).

Wichtigste Neuerungen:

  • Der Freedreno-Treiber für Qualcomm Adreno-GPUs bietet Unterstützung für die OpenGL 4.5-Grafik-API und der Emulatortreiber (vn) unterstützt die Vulkan 1.3-API.
  • Der Panfrost-Treiber implementiert die Möglichkeit, Shader auf der Festplatte zwischenzuspeichern, und fügt Unterstützung für die Mali T620-GPU hinzu. Der Treiber ist mit der OpenGL 3.1-Spezifikation und OpenGL ES 3.1 kompatibel.
  • Der RADV (AMD) Vulkan-Treiber bietet Unterstützung für GFX11/RDNA3-GPUs (Radeon RX 7000-Serie). Der Code für Raytracing wurde optimiert. Unterstützung für die Pixelformate R8G8B8, B8G8R8 und R16G16B16 sowie 64-Bit-Vertex-Pufferformate hinzugefügt. Unterstützung für das Flag „extendedDynamicState2PatchControlPoints“ hinzugefügt, das die Unterstützung für die Erweiterung „VK_EXT_extended_dynamic_state2“ bestimmt. Radeon Raytracing-Analysator integriert.
  • Das Paket enthält den Rusticle-Treiber mit der Implementierung der OpenCL 3.0-Spezifikation, die die API und Erweiterungen der C-Sprache für die Organisation plattformübergreifender paralleler Datenverarbeitung definiert. Der Treiber ist in Rust geschrieben, wurde mit der in Mesa bereitgestellten Gallium-Schnittstelle entwickelt und fungiert als Analogon des in Mesa vorhandenen Clover OpenCL-Frontends. Clover wurde lange Zeit aufgegeben und Rusticl wird als zukünftiger Ersatz positioniert. Die Unterstützung für Rust und Rusticl ist standardmäßig deaktiviert und erfordert einen Build mit expliziten Optionen „-D gallium-rusticl=true -Dllvm=enabled -Drust_std=2021“. Beim Erstellen werden als zusätzliche Abhängigkeiten der Rustc-Compiler, der Bindungsgenerator Bindgen, LLVM, SPIRV-Tools und SPIRV-LLVM-Translator benötigt.
  • Der RadeonSI-Treiber unterstützt standardmäßig Multithread-Rendering über OpenGL.
  • Einführung von Mesa-DB, einem neuen Typ von Shader-Cache, der Daten in einer einzigen Datei speichert.
  • Unterstützung für 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 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.

Source: opennet.ru

Kommentar hinzufügen