Nach viermonatiger Entwicklungszeit wurde die freie Implementierung der APIs OpenGL und Vulkan – Mesa 21.3.0 – veröffentlicht. Der erste Release der Mesa 21.3.0 hat einen experimentellen Status; nach der finalen Stabilisierung des Codes wird die stabile Version 21.3.1 erscheinen.
Mesa 21.3 bietet vollständige Unterstützung für OpenGL 4.6 für die Treiber 965, iris (Intel), radeonsi (AMD), zink und llvmpipe. OpenGL 4.5 wird für AMD-Grafikprozessoren (r600) und NVIDIA (nvc0) unterstützt, während OpenGL 4.3 für virgl (virtueller GPU Virgil3D für QEMU/KVM) verfügbar ist. Vulkan 1.2 wird für Intel- und AMD-Karten sowie im Emulationsmodus (vn) und im Software-Rasterisierer lavapipe unterstützt. Vulkan 1.1 ist für Qualcomm-GPUs und den Software-Rasterisierer lavapipe verfügbar, und Vulkan 1.0 wird für Broadcom VideoCore VI GPUs (Raspberry Pi 4) unterstützt.
Hauptneuheiten:
- Im Zink-Treiber (Implementierung des OpenGL-API über Vulkan, die hardwarebeschleunigtes OpenGL ermöglicht, wenn im System Treiber mit Unterstützung nur für die Vulkan-API vorhanden sind) wurde die Unterstützung für OpenGL ES 3.2 implementiert.
- Der Panfrost-Treiber, der für GPUs auf Basis der Mikroarchitekturen Midgard (Mali-T6xx, Mali-T7xx, Mali-T8xx) und Bifrost (Mali G3x, G5x, G7x) ausgelegt ist, wurde offiziell auf Kompatibilität mit OpenGL ES 3.1 zertifiziert.
- Im v3dv-Treiber, der für den Grafikbeschleuniger VideoCore VI entwickelt wurde und seit dem Modell Raspberry Pi 4 verwendet wird, ist die Unterstützung des Grafik-APIs Vulkan 1.1 zertifiziert, und geometrische Shaders wurden hinzugefügt. Die Leistung des durch den Shader-Compiler generierten Codes wurde erheblich gesteigert, was sich positiv auf die Geschwindigkeit von Programmen ausgewirkt hat, die aktiv Shaders nutzen, wie beispielsweise Spiele auf Basis der Unreal Engine 4.
- Im Vulkan-Treiber RADV (AMD) wurde experimentelle Unterstützung für Raytracing und Shader für Raytracing hinzugefügt. Für die GFX10.3-Karten ist die Unterstützung für Primitive Culling mit den Shader-Engines NGG (Next-Gen Geometry) standardmäßig aktiviert.
- Im OpenGL-Treiber Iris (neuer Treiber für Intel-GPUs) wurde die Möglichkeit der multithreaded Shader-Kompilierung hinzugefügt.
- Im lavapipe-Treiber, der einen Software-Rasterizer für die Vulkan-API implementiert (vergleichbar mit llvmpipe, aber für Vulkan, der die API-Aufrufe von Vulkan in die Gallium-API übersetzt), wurde die Unterstützung für anisotrope Texturfilterung implementiert, und die Unterstützung für Vulkan 1.2 wurde hinzugefügt.
- Im OpenGL-Treiber llvmpipe, der für die softwarebasierte Grafikausgabe entwickelt wurde, wurde die Leistung bei 2D-Prozessen um das 2- bis 3-Fache gesteigert. Unterstützung für FP16-Operationen, anisotropes Texturfiltering (GL_ARB_texture_filter_anisotropic) und das Festlegen von Speicherbereichen (GL_AMD_pinned_memory) wurde hinzugefügt. Zudem wird der Kompatibilitätsmodus mit OpenGL 4.5 unterstützt.
- Der Status-Tracker VA-API (Video Acceleration API) hat die Unterstützung für die Hardwarebeschleunigung beim Kodieren und Dekodieren von AV1-Videos mit AMD-GPU-Treibern implementiert.
- Für die Windows-Plattform wurde Unterstützung für EGL implementiert.
- Für Wayland wurde die Unterstützung der Erweiterung EGL_EXT_present_opaque hinzugefügt. Probleme mit der Transparenzdarstellung in Spielen, die in Umgebungen mit dem Wayland-Protokoll ausgeführt werden, wurden behoben.
- In den Vulkan-Treibern RADV (AMD), ANV (Intel) und lavapipe wurde die Unterstützung für folgende Erweiterungen hinzugefügt:
- VK_EXT_shader_atomic_float2 (Intel, RADV).
- VK_EXT_vertex_input_dynamic_state (RADV).
- VK_EXT_primitive_topology_list_restart (RADV, lavapipe).
- VK_KHR_shader_integer_dot_product (RADV).
- VK_KHR_synchronization2 (Intel).
- VK_KHR_maintenance4 (RADV).
- VK_KHR_format_feature_flags2 (RADV).
- VK_KHR_shader_subgroup_extended_types (lavapipe).
- VK_KHR_spirv_1_4 (lavapipe).
- VK_KHR_timeline_semaphore (lavapipe).
- VK_EXT_external_memory_host (lavapipe).
- VK_KHR_depth_stencil_resolve (lavapipe).
- VK_KHR_shader_float16_int8 (lavapipe).
- VK_EXT_color_write_enable (lavapipe).
Quelle: opennet.ru
