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

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

In Mesa 22.1 ist Unterstützung für die Vulkan 1.3-Grafik-API in den Anv-Treibern für Intel-GPUs, radv für AMD-GPUs und dem Lavapipe-Software-Rasterizer verfügbar. Die Unterstützung für Vulkan 1.2 ist im Emulatormodus (vn) implementiert, Vulkan 1.1 ist im Treiber für Qualcomm-GPUs (tu) implementiert. und Vulkan 1.0 im Treiber für die Broadcom VideoCore VI GPU (Raspberry Pi 4). 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) und NVIDIA-GPUs (nvc0) sowie OpenGL 4.3-Unterstützung für virgl (virgil3D virtuelle GPU für QEMU/KVM) und vmwgfx (VMware) verfügbar.

Wichtigste Neuerungen:

  • Der ANV Vulkan-Treiber (Intel) und der Iris OpenGL-Treiber unterstützen die diskreten Grafikkarten Intel DG2 (Arc Alchemist) und Arctic Sound-M.
  • Der D3D12-Treiber mit einer Ebene zur Organisation der OpenGL-Arbeit auf der DirectX 12-API (D3D12) gewährleistet die Kompatibilität mit OpenGL 4.2. Der Treiber wird in der WSL2-Schicht verwendet, um grafische Linux-Anwendungen unter Windows auszuführen.
  • Der Lavapipe-Treiber, der einen Software-Rasterizer für die Vulkan-API implementiert (ähnlich llvmpipe, aber für Vulkan, der Vulkan-API-Aufrufe in die Gallium-API übersetzt), unterstützt Vulkan 1.3.
  • Unterstützung für AMD GFX1036- und GFX1037-GPUs hinzugefügt.
  • Der RADV-Treiber (AMD) hat Ray Primitive Culling implementiert, was die Raytracing-Unterstützung für Spiele wie DOOM Eternal verbessert.
  • Es wurde eine erste Implementierung des Vulkan-Treibers für GPUs vorgeschlagen, die auf der von Imagination entwickelten PowerVR Rogue-Architektur basiert.
  • Der Nouveau-Treiber für ältere GeForce 6/7/8-GPUs wurde konvertiert, um eine typlose Zwischendarstellung (IR) von NIR-Shadern zu verwenden. Durch die NIR-Unterstützung erhalten Sie auch Unterstützung für die TGSI-Zwischendarstellung (Tungsten Graphics Shader Infrastructure) durch die Verwendung einer Ebene zur Übersetzung von NIR in TGSI.
  • Die Komposition umfasst einen kompakten OpenCL-Compiler, der von Intel vorgeschlagen und für Raytracing verwendet wird.
  • Der OpenGL-Treiber v3d, der für den VideoCore VI-Grafikbeschleuniger entwickelt wurde und ab dem Raspberry Pi 4-Modell verwendet wird, implementiert die Unterstützung für das Caching von Shader auf der Festplatte.
  • Für AMD-GPUs, die mit der VCN 2.0-Videoverarbeitungs-Engine ausgestattet sind, wurde EFC-Unterstützung (Encoder Format Conversion) implementiert, die die Verwendung eines Hardware-Video-Encoders zum direkten Lesen von RGB-Oberflächen ohne RGB->YUV-Konvertierungen durch Shader ermöglicht.
  • Der Crocus-Treiber, der für ältere Intel-GPUs entwickelt wurde, die auf Gen4-Gen7-Mikroarchitekturen basieren, die vom Iris-Treiber nicht unterstützt werden, enthält ein Kompatibilitätsprofil mit älteren Versionen von OpenGL.
  • Der PanVk-Treiber, der die Vulkan-Grafik-API für ARM Mali Midgard- und Bifrost-GPUs unterstützt, hat mit der Arbeit an der Unterstützung von Compute-Shadern begonnen.
  • Der Venus-Treiber mit der Implementierung einer virtuellen GPU (virtio-gpu) basierend auf der Vulkan-API hat Unterstützung für die ANGLE-Schicht hinzugefügt, die für die Übersetzung von OpenGL ES-Aufrufen in OpenGL, Direct3D 9/11, Desktop GL und Vulkan verantwortlich ist.
  • Unterstützung für NVIDIAs OpenGL-Erweiterung GL_NV_pack_subimage hinzugefügt, die dazu dient, Rechtecke im Hostspeicher mithilfe von Daten aus dem Framebuffer oder der Textur zu aktualisieren.
  • Den Vulkan-Treibern RADV (AMD), ANV (Intel) und Lavapipe wurde Unterstützung für Erweiterungen hinzugefügt:
    • VK_EXT_ Depth_clip_control für Lavapipe und RADV.
    • VK_EXT_graphics_pipeline_library für Lavapipe.
    • VK_EXT_primitives_generated_query für Lavapipe.
    • VK_EXT_image_2d_view_of_3d für ANV und Lavapipe.
    • VK_KHR_swapchain_mutable_format für Lavapipe.

Source: opennet.ru

Kommentar hinzufügen