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

Die Veröffentlichung der kostenlosen Implementierung der OpenGL- und Vulkan-APIs – Mesa 21.0.0 – wird vorgestellt. Die erste Veröffentlichung des Mesa 21.0.0-Zweigs hat einen experimentellen Status – nach der endgültigen Stabilisierung des Codes wird eine stabile Version 21.0.1 veröffentlicht. Mesa 21.0 bietet 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) und NVIDIA-GPUs (nvc0) sowie OpenGL 4.3 für virgl (virtuelle Virgil3D-GPU für QEMU/KVM) verfügbar. Vulkan 1.2 wird für Intel- und AMD-Karten und Vulkan 1.0 für VideoCore VI (Raspberry Pi 4) unterstützt.

Wichtigste Neuerungen:

  • Der Zink-Treiber (eine Implementierung der OpenGL-API auf Vulkan) bietet Unterstützung für OpenGL 4.6. Mit Zink können Sie hardwarebeschleunigtes OpenGL nutzen, wenn Sie Treiber in Ihrem System haben, die nur die Vulkan-API unterstützen. Die Leistung von Zink kommt der nativer OpenGL-Implementierungen nahe.
  • Der für Software-Rendering entwickelte llvmpipe-Treiber unterstützt OpenGL 4.6.
  • Der Freedreno-Treiber, der für das Grafiksubsystem von Qualcomm-Chips verwendet wird, unterstützt OpenGL ES 6 für die Adreno a3.0xx-GPU.
  • Der Panfrost-Treiber für GPU Midgard (Mali-T7xx, Mali-T8xx) und Bifrost (Mali G3x, G5x, G7x) unterstützt OpenGL 3.1 sowie Unterstützung für OpenGL ES 3.0 für GPU Bifrost.
  • Der Radeonsi-Treiber unterstützt die OpenGL-Erweiterungen GL_EXT_demote_to_helper_invocation und GL_NV_compute_shader_derivatives. Für das Spiel „Counter-Strike: Global Offensive“ ist standardmäßig der Optimierungsmodus „mesa_glthread“ aktiviert, der eine Leistungssteigerung um 10-20 % ermöglicht. Optimierungen implementiert, die sich auf das Bestehen von SPECViewPerf-Tests auswirken. Unterstützung für das Profilierungstool Radeon GPU Profiler (RGP) hinzugefügt. Unterstützung für die Smart Access Memory-Technologie für Zen 3- und RDNA 2-GPUs hinzugefügt. Unterstützung für HEVC SAO-Encoder (Sample Adaptive Offset, für GPUs, die VCN2-, VCN2.5- und VCN3-Engines unterstützen) und AV1-Decoder (für RDNA 2/RX 6000 und nur über die OpenMAX-Schnittstelle) hinzugefügt.
  • Der RADV Vulkan-Treiber (für AMD-Karten) bietet Unterstützung für Rapid Packed Math (16-Bit-Vektorisierung) und Sparse Memory (ermöglicht die inkonsistente Anordnung von Ressourcen wie Bildern und Texturen und deren erneute Zuordnung zu unterschiedlichen Speicherzuweisungen). Optimierte Leistung für Karten der RX 6000-Serie. Erweiterungen VK_VALVE_mutable_descriptor_type und VK_KHR_fragment_shading_rate hinzugefügt (nur RDNA2).
  • Intel ANV- und Iris-Treiber sorgen für Leistungsoptimierungen und bieten anfängliche Unterstützung für Vulkan-Raytracing-Erweiterungen, die in Xe HPG-Grafikkarten implementiert sind.
  • Unterstützung für die Erweiterung EGL_MESA_platform_xcb hinzugefügt, die es Anwendungen ermöglicht, EGL-Ressourcen aus X11-Ressourcen zu erstellen, ohne Xlib zu verwenden.
  • Der Vulkan-Treiber V3DV, der für den VideoCore VI-Grafikbeschleuniger entwickelt wurde, der in Raspberry Pi 4-Boards auf Basis des Broadcom BCM2711-Chips verwendet wird, hat Unterstützung für Wayland WSI (Windowing System Integration) hinzugefügt, das den Zugriff auf die Vulkan-API aus Wayland-basierten Umgebungen ermöglicht.
  • Die anfängliche Implementierung der Schicht, die OpenGL-Aufrufe in die DirectX 12-API übersetzt, wurde übernommen, um die Arbeit von Grafikanwendungen in der WSL-Umgebung (Windows Subsystem für Linux) zu organisieren. Darüber hinaus ist die Bibliothek spirv_to_dxil zum Konvertieren der Zwischendarstellung von SPIR-V-Shadern in die von Microsoft entwickelte DXIL (DirectX Intermediate Language) enthalten.
  • Neu gestaltete und deutlich verbesserte Unterstützung für Haiku OS.
  • Die Einstellungen glx_disable_oml_sync_control, glx_disable_sgi_video_sync und glx_disable_ext_buffer_age wurden aus driconf entfernt.
  • Die Unterstützung für DRI1 wurde entfernt und das Laden von DRI-Treibern aus Mesa-Versionen unter 8.0 wurde gestoppt.
  • Der swrast-Treiber wurde entfernt, der auf der Basis der klassischen DRI-Schnittstelle basiert und für das OpenGL-Software-Rendering gedacht ist (die verbleibenden Software-Rendering-Treiber llvmpipe und softpipe liegen in puncto Leistung und Funktionalität deutlich vor swrast). Die Entfernung von swrast wurde durch das Vorhandensein vieler ungelöster Probleme und das Auftreten von Regressionen erleichtert, obwohl dieser Treiber in Distributionen nicht mehr verwendet wird.
  • Die alte klassische Version der OSMesa-API wurde entfernt (Gallium-basiertes OSMesa bleibt übrig), was das Rendern nicht auf dem Bildschirm, sondern in einem Puffer im Speicher ermöglicht.

    Source: opennet.ru

Kommentar hinzufügen