Die Veröffentlichung der freien Implementierung der OpenGL- und Vulkan-API — Mesa 24.1.0 — wurde bekannt gegeben. Die erste Version der Reihe Mesa 24.1.0 hat den Status experimentell — nach der endgültigen Stabilisierung des Codes wird die stabile Version 24.1.1 veröffentlicht.
In Mesa 24.0 ist die Unterstützung der Grafik-API Vulkan 1.3 in den Treibern anv für Intel-GPUs, radv für AMD-GPUs, NVK für NVIDIA-GPUs, tu für Qualcomm-GPUs, im Software-Rasterizer lavapipe (lvp) und im Emulator-Modus (vn) verfügbar. Die Unterstützung von Vulkan 1.0 wird in den Treibern v3dv (Broadcom VideoCore VI GPU von Raspberry Pi 4) und dzn (Implementierung von Vulkan über Direct3D 12) bereitgestellt.
Mesa bietet ebenfalls umfassende Unterstützung für OpenGL 4.6 in den Treibern iris (Intel Gen 8+ GPU), radeonsi (AMD), Crocus (ältere Intel Gen 4-7 GPUs), zink, llvmpipe, virgl (virtuelle GPU Virgil3D für QEMU/KVM), freedreno (Qualcomm Adreno), d3d12 (Schicht zur Verwendung von OpenGL über DirectX 12) und asahi (GPU AGX, die in Apple M1- und M2-Chips verwendet wird). Die Unterstützung von OpenGL 4.5 ist für AMD-GPUs (r600) und NVIDIA (nvc0) verfügbar. OpenGL 3.3 wird in den Treibern softpipe (Software-Rasterizer) und nv50 (NVIDIA NV50) unterstützt.
Hauptneuheiten:
- Im asahi-Treiber, der für die AGX-GPU entwickelt wurde, die in Apples ARM-Chips verwendet wird, wird die Unterstützung von OpenGL 4.6 und OpenGL ES 3.2 gewährleistet.
- Die Leistung des NVK-Treibers für NVIDIA-GPUs, die auf den Microarchitekturen Turing (GeForce GTX 16xx, RTX 20xx und Quadro RTX), Ampere (GeForce RTX 30xx und RTX A2000/4000/5000/6000) und Ada (GeForce RTX 4xxx, RTX 4000 SFF, RTX 4xxx/5000/6000 Ada) basieren, wurde erheblich verbessert. Der Treiber wird von einer breiten Nutzerbasis als für den alltäglichen Gebrauch bereit angesehen. Die Unterstützung von Vulkan 1.3 im NVK ist vom Khronos-Konsortium zertifiziert. Zudem wurde die Leistung der DXVK-Ebene verbessert, die eine Implementierung von Direct3D 9, 10 und 11 bietet.
- Eine Änderung wurde hinzugefügt, die es ermöglicht, den Zink-Treiber (OpenGL-Implementierung über Vulkan) zu aktivieren, um die Unterstützung von OpenGL 4.6 auf Systemen mit neuen NVIDIA-Grafikkarten (ab GeForce RTX 20xx) bereitzustellen, da es im Standard-OpenGL-Treiber Nouveau (NVC0) zu Problemen kommen kann. Um Zink anstelle von NVC0 zu aktivieren, sollte die Umgebungsvariable „NOUVEAU_USE_ZINK=1“ gesetzt werden.
- Der Panfrost-Treiber hat jetzt Support für die GPUs Mali G610, Mali G310 und Mali T600 hinzugefügt.
- In allen Vulkan-Treibern wurde die Unterstützung für explizite Synchronisation (Explicit Sync) für Wayland und X11 implementiert. Explicit Sync erlaubt es Anwendungen, den Kompositionsmanager über die Bereitschaft der Frame-Ausgabe zu informieren, was die Verzögerungen reduziert und das Auftreten von Artefakten bei der Grafikausgabe eliminiert.
- Die Funktionen des d3d12-Treibers wurden erweitert, der eine Schicht zur Implementierung von OpenGL über DirectX 12 bereitstellt.
- Der V3DV-Treiber, der für die Broadcom VideoCore-GPU (verwendet in Raspberry Pi-Platinen) entwickelt wird, hat Unterstützung für dynamisches Rendering hinzugefügt.
- Der Vulkan-Treiber ANV (Intel) wurde auf die Verwendung asynchroner Vorgänge zur Zuordnung von Videospeicher (Asynchronous VM_BIND) umgestellt. Für GPUs auf Basis der Intel Xe-Architektur, die in den Intel Arc-Grafikkarten und der integrierten Grafik ab den Tiger Lake-Prozessoren verwendet werden, wurde die Möglichkeit hinzugefügt, Zustandsdumping zur Debugging von GPU-Hängern durchzuführen. Die Vorbereitung zur Unterstützung von Intel LunarLake-GPU-Chips (Xe 2) wurde abgeschlossen.
- Neue Vulkan-Erweiterungen wurden hinzugefügt:
- VK_EXT_map_memory_placed für die Treiber RADV, ANV und NVK
- VK_KHR_shader_subgroup_rotate für RADV, ANV und NVK
- VK_KHR_load_store_op_none für RADV, ANV, NVK und Turnip
- VK_KHR_line_rasterization für RADV, ANV, NVK und Turnip
- VK_KHR_index_type_uint8 für RADV, ANV, NVK und Turnip
- VK_KHR_shader_expect_assume für alle Vulkan-Treiber
- VK_KHR_shader_maximal_reconvergence für RADV, ANV und NVK
- VK_KHR_shader_quad_control für RADV
- VK_KHR_shader_subgroup_uniform_control_flow für NVK
- VK_EXT_device_address_binding_report für RADV
- VK_EXT_external_memory_dma_buf für lavapipe
- VK_EXT_queue_family_foreign für lavapipe
- VK_EXT_shader_object für RADV
- VK_EXT_nested_command_buffer für NVK und RADV
- VK_EXT_queue_family_foreign für NVK
- VK_EXT_image_drm_format_modifier für NVK
Quelle: opennet.ru
