Die Freigabe der freien Implementierung der OpenGL- und Vulkan-API - Mesa 24.1.0 wurde veröffentlicht. Die erste Ausgabe des Mesa 24.1.0-Zweigs hat den experimentellen Status - nach Abschluss der endgültigen Stabilisierung des Codes wird die stabile Version 24.1.1 veröffentlicht.
In Mesa 24.0 ist Unterstützung für die 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-Rasterisierer lavapipe (lvp) und im Emulationsmodus (vn) verfügbar. Vulkan 1.0 wird in den Treibern v3dv (Broadcom VideoCore VI GPU aus Raspberry Pi 4) und dzn (Implementierung von Vulkan über Direct3D 12) unterstützt.
Mesa bietet auch volle Unterstützung für OpenGL 4.6 in den Treibern iris (Intel GPU Gen 8+), radeonsi (AMD), Crocus (alte Intel-GPUs Gen4-Gen7), zink, llvmpipe, virgl (virtuelle GPU Virgil3D für QEMU/KVM), freedreno (Qualcomm Adreno), d3d12 (Schnittstelle zur Implementierung von OpenGL über DirectX 12) und asahi (GPU AGX, die in Apple M1- und M2-Chips verwendet wird). Unterstützung für OpenGL 4.5 ist für AMD-GPUs (r600) und NVIDIA (nvc0) verfügbar. Unterstützung für OpenGL 3.3 ist in den Treibern softpipe (Software-Rasterisierer) und nv50 (NVIDIA NV50) vorhanden.
Hauptneuheiten:
- Im Treiber asahi, der für die ARM-Chips von Apple entwickelt wird, wird Unterstützung für OpenGL 4.6 und OpenGL ES 3.2 bereitgestellt.
- Die Leistung des NVK-Treibers für NVIDIA-GPUs, die auf Turing- (GeForce GTX 16xx, RTX 20xx und Quadro RTX), Ampere- (GeForce RTX 30xx und RTX A2000/4000/5000/6000) und Ada-Architekturen (GeForce RTX 4xxx, RTX 4000 SFF, RTX 4xxx/5000/6000 Ada) basieren, wurde erheblich verbessert. Der Treiber wird von einer breiten Benutzerbasis als einsatzbereit anerkannt. Die Unterstützung von Vulkan 1.3 in NVK ist vom Khronos-Konsortium zertifiziert. Darüber hinaus wurde die Leistung der DXVK-Schicht, die eine Implementierung von Direct3D 9, 10 und 11 bereitstellt, über NVK verbessert.
- Eine Änderung wurde hinzugefügt, die es ermöglicht, den Zink-Treiber (Implementierung von OpenGL über Vulkan) zur Unterstützung von OpenGL 4.6 auf Systemen mit neuen NVIDIA-Grafikkarten (beginnend mit GeForce RTX 20xx) zu verwenden, bei denen im regulären OpenGL-Treiber Nouveau (NVC0) Probleme auftreten können. Um Zink anstelle von NVC0 zu aktivieren, sollte die Umgebungsvariable „NOUVEAU_USE_ZINK=1“ gesetzt werden.
- Im Panfrost-Treiber wurde die Unterstützung für die GPU Mali G610, Mali G310 und Mali T600 hinzugefügt.
- In allen Vulkan-Treibern wurde Unterstützung für explizite Synchronisation (Explicit Sync) für Wayland und X11 implementiert. Explicit Sync ermöglicht es Anwendungen, den Kompositormanagement-Manager über die Bereitschaft der Rahmenanzeige zu informieren, was zu einer Verringerung der Latenzen und zur Vermeidung von Artefakten bei der Grafikausgabe führt.
- Die Funktionen des d3d12-Treibers, der eine Schnittstelle mit einer Implementierung von OpenGL über DirectX 12 bereitstellt, wurden erweitert.
- Der V3DV-Treiber, der für die GPU Broadcom VideoCore (verwendet auf Raspberry Pi-Platinen) entwickelt wird, hat Unterstützung für die dynamische Rasterisierung hinzugefügt.
- Der Vulkan-Treiber ANV (Intel) wurde auf die Verwendung asynchroner Operationen zum Mappen 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 seit Tiger Lake-Prozessoren verwendet wird, wurde die Möglichkeit zur Rücksetzung von Zustandsdumping zur Debugging von GPU-Hängern hinzugefügt. Die Vorbereitung zur Unterstützung der Intel LunarLake (Xe 2) GPU-Chips wurde getroffen.
- Unterstützung für neue Vulkan-Erweiterungen 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
