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

Nach drei Monaten Entwicklungszeit wurde die Veröffentlichung einer kostenlosen Implementierung der OpenGL- und Vulkan-API – Mesa 21.2.0 – veröffentlicht. Die erste Veröffentlichung des Mesa 21.2.0-Zweigs hat einen experimentellen Status – nach der endgültigen Stabilisierung des Codes wird eine stabile Version 21.2.1 veröffentlicht.

Mesa 21.2 bietet volle Unterstützung für OpenGL 4.6 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-Unterstützung für virgl (virtuelle Virgil3D-GPU für QEMU/KVM) verfügbar. Vulkan 1.2-Unterstützung ist für Intel- und AMD-Karten sowie im Emulatormodus (vn) verfügbar, Vulkan 1.1-Unterstützung ist für Qualcomm-GPUs und den Lavapipe-Software-Rasterizer verfügbar und Vulkan 1.0 ist für Broadcom VideoCore VI-GPUs (Raspberry Pi 4) verfügbar. .

Wichtigste Neuerungen:

  • Der Asahi OpenGL-Treiber ist im Lieferumfang enthalten und unterstützt zunächst die GPU, die in Apple M1-Chips enthalten ist. Der Treiber nutzt die Gallium-Schnittstelle und unterstützt die meisten Funktionen von OpenGL 2.1 und OpenGL ES 2.0, ist jedoch für die Ausführung der meisten Spiele noch nicht geeignet. Der Treibercode basiert auf dem Gallium-Referenz-Noop-Treiber, wobei ein Teil des Codes vom Panfrost-Treiber portiert wurde, der für die ARM-Mali-GPU entwickelt wird.
  • Der Crocus OpenGL-Treiber ist im Lieferumfang enthalten und unterstützt ältere Intel-GPUs (basierend auf Gen4-Gen7-Mikroarchitekturen), die vom Iris-Treiber nicht unterstützt werden. Im Gegensatz zum i965-Treiber basiert der neue Treiber auf der Gallium3D-Architektur, die Speicherverwaltungsaufgaben an den DRI-Treiber im Linux-Kernel auslagert und einen vorgefertigten Status-Tracker mit Unterstützung für einen Wiederverwendungs-Cache von Ausgabeobjekten bereitstellt.
  • Der PanVk-Treiber ist im Lieferumfang enthalten und bietet Unterstützung für die Vulkan-Grafik-API für ARM Mali Midgard- und Bifrost-GPUs. PanVk wird von Collabora-Mitarbeitern entwickelt und ist als Fortsetzung der Entwicklung des Panfrost-Projekts positioniert, das OpenGL unterstützt.
  • Der Panfrost-Treiber für Midgard-GPUs (Mali T760 und neuer) und Bifrost-GPUs (Mali G31, G52, G76) unterstützt OpenGL ES 3.1. Zukünftige Pläne umfassen Arbeiten zur Leistungssteigerung auf Bifrost-Chips und die Implementierung von GPU-Unterstützung auf Basis der Valhall-Architektur (Mali G77 und neuer).
  • 32-Bit-x86-Builds verwenden sse87-Anweisungen anstelle von x2-Anweisungen für mathematische Berechnungen.
  • Der Nouveau nv50-Treiber für die NVIDIA GT21x-GPU (GeForce GT 2×0) unterstützt OpenGL ES 3.1.
  • Der für die Qualcomm Adreno GPU entwickelte Vulkan-Treiber TURNIP und der OpenGL-Treiber Freedreno unterstützen zunächst die Adreno a6xx gen4 GPU (a660, a635).
  • Der RADV (AMD) Vulkan-Treiber hat Unterstützung für Primitive Culling mithilfe von NGG-Shader-Engines (Next-Gen Geometry) hinzugefügt. Die Möglichkeit, den RADV-Treiber auf der Windows-Plattform mithilfe des MSVC-Compilers zu erstellen, wurde implementiert.
  • Es wurden vorbereitende Arbeiten am ANV Vulkan-Treiber (Intel) und am Iris OpenGL-Treiber durchgeführt, um die Unterstützung für die kommenden Intel Xe-HPG (DG2)-Grafikkarten bereitzustellen. Dazu gehören erste Funktionen im Zusammenhang mit Raytracing und Unterstützung für Raytracing-Shader.
  • Der Lavapipe-Treiber, der einen Software-Rasterizer für die Vulkan-API implementiert (analog zu llvmpipe, aber für Vulkan, der Vulkan-API-Aufrufe in die Gallium-API übersetzt), unterstützt den „WideLines“-Modus (bietet Unterstützung für Linien mit einer Breite über 1.0).
  • Unterstützung für die dynamische Erkennung und das Laden alternativer GBM-Backends (Generic Buffer Manager) wurde implementiert. Die Änderung zielt darauf ab, die Wayland-Unterstützung auf Systemen mit NVIDIA-Treibern zu verbessern.
  • Der Zink-Treiber (eine Implementierung der OpenGL-API zusätzlich zu Vulkan, die es Ihnen ermöglicht, hardwarebeschleunigtes OpenGL zu erhalten, wenn das System über Treiber verfügt, die nur die Vulkan-API unterstützen) unterstützt die OpenGL-Erweiterungen GL_ARB_sample_locations, GL_ARB_sparse_buffer, GL_ARB_shader_group_vote, GL_ARB_texture_filter_minmax und GL_ARB_shader_clock. DRM-Formatmodifikatoren hinzugefügt (Direct Rendering Manager, VK_EXT_image_drm_format_modifier-Erweiterung aktiviert).
  • Den Vulkan-Treibern RADV (AMD), ANV (Intel) und Lavapipe wurde Unterstützung für Erweiterungen hinzugefügt:
    • VK_EXT_provoking_vertex (RADV);
    • VK_EXT_extended_dynamic_state2 (RADV);
    • VK_EXT_global_priority_query (RADV);
    • VK_EXT_physical_device_drm (RADV);
    • VK_KHR_shader_subgroup_uniform_control_flow (RADV, ANV);
    • VK_EXT_color_write_enable (RADV);
    • VK_EXT_acquire_drm_display (RADV, ANV);
    • VK_EXT_vertex_input_dynamic_state(lavapipe);
    • VK_EXT_line_rasterization(lavapipe);
    • VK_EXT_multi_draw(ANV, Lavapipe, RADV);
    • VK_KHR_separate_ Depth_stencil_layouts(lavapipe);
    • VK_EXT_separate_stencil_usage(lavapipe);
    • VK_EXT_extended_dynamic_state2 (Lavapipe).

Source: opennet.ru

Kommentar hinzufügen