A fost lansată versiunea 24.1.0 a implementării open-source a API-urilor OpenGL și Vulkan — Mesa 24.1.0. Prima versiune a ramurii Mesa 24.1.0 are statut experimental — după finalizarea stabilizării codului, va fi lansată versiunea stabilă 24.1.1.
În Mesa 24.0, este disponibil suport pentru API-ul grafic Vulkan 1.3 în driver-ele anv pentru GPU-uri Intel, radv pentru GPU-uri AMD, NVK pentru GPU-uri NVIDIA, tu pentru GPU-uri Qualcomm, în rasterizatorul software lavapipe (lvp) și în modul emulator (vn). Suportul pentru Vulkan 1.0 este implementat în driver-ele v3dv (GPU Broadcom VideoCore VI de pe Raspberry Pi 4) și dzn (implementare Vulkan pe Direct3D 12).
Mesa oferă de asemenea suport complet pentru OpenGL 4.6 pentru driver-ele iris (GPU Intel Gen 8+), radeonsi (AMD), Crocus (GPU-uri vechi Intel Gen4-Gen7), zink, llvmpipe, virgl (GPU virtual Virgil3D pentru QEMU/KVM), freedreno (Qualcomm Adreno), d3d12 (strat pentru a permite utilizarea OpenGL pe DirectX 12) și asahi (GPU AGX utilizat în cipurile Apple M1 și M2). Suportul pentru OpenGL 4.5 este disponibil pentru GPU-urile AMD (r600) și NVIDIA (nvc0). Suportul pentru OpenGL 3.3 este disponibil în driver-ele softpipe (rasterizator software) și nv50 (NVIDIA NV50).
Noutăți principale:
- În driver-ul asahi, dezvoltat pentru GPU AGX utilizat în cipurile Apple ARM, este asigurat suportul pentru OpenGL 4.6 și OpenGL ES 3.2.
- Funcționarea driver-ului NVK pentru GPU-urile NVIDIA bazate pe arhitecturile Turing (seria GeForce GTX 16xx, RTX 20xx și Quadro RTX), Ampere (seria GeForce RTX 30xx și RTX A2000/4000/5000/6000) și Ada (seria GeForce RTX 4xxx, RTX 4000 SFF, RTX 4xxx/5000/6000 Ada) a fost semnificativ îmbunătățită. Driver-ul este considerat pregătit pentru utilizare zilnică de un număr mare de utilizatori. Suportul pentru Vulkan 1.3 în NVK este certificat de consorțiul Khronos. Funcționarea layer-ului DXVK care oferă o implementare a Direct3D 9, 10 și 11 a fost îmbunătățită.
- A fost adăugată o modificare care permite utilizarea driver-ului Zink (implementarea OpenGL pe Vulkan) pentru a asigura suport pentru OpenGL 4.6 pe sistemele cu noi serii de plăci video NVIDIA (începând cu GeForce RTX 20xx), care pot avea probleme cu driver-ul OpenGL standard Nouveau (NVC0). Pentru a activa Zink în loc de NVC0, trebuie setată variabila de mediu „NOUVEAU_USE_ZINK=1”.
- În driver-ul Panfrost a fost adăugat suport pentru GPU-urile Mali G610, Mali G310 și Mali T600.
- Toate driver-ele Vulkan implementează suport pentru sincronizare explicită (Explicit Sync) pentru Wayland și X11. Explicit Sync permite aplicațiilor să informeze managerul de compozitie despre pregătirea ieșirii cadrelor pe ecran, ceea ce reduce întârzierile și elimină apariția artefactelor la redarea graficii.
- Funcționalitatea driver-ului d3d12, care oferă un strat cu implementarea OpenGL pe DirectX 12, a fost extinsă.
- În driverul V3DV, dezvoltat pentru GPU Broadcom VideoCore (utilizat pe plăcile Raspberry Pi), a fost adăugată suport pentru redarea dinamică.
- Driverul Vulkan ANV (Intel) a fost adaptat pentru utilizarea operațiunilor asyncrone de mapare a memoriei video (Asynchronous VM_BIND). Pentru GPU-uri bazate pe arhitectura Intel Xe, care sunt utilizate în plăcile video Intel din familia Arc și în grafica integrată, începând cu procesoarele Tiger Lake, a fost adăugată capacitatea de a reseta dump-uri de stare pentru depanarea blocajelor GPU. S-a efectuat pregătirea pentru suportul GPU-urilor Intel LunarLake (Xe 2).
- A fost adăugată suport pentru noi extensii Vulkan:
- VK_EXT_map_memory_placed pentru driverele RADV, ANV și NVK
- VK_KHR_shader_subgroup_rotate pentru RADV, ANV și NVK
- VK_KHR_load_store_op_none pentru RADV, ANV, NVK și Turnip
- VK_KHR_line_rasterization pentru RADV, ANV, NVK și Turnip
- VK_KHR_index_type_uint8 pentru RADV, ANV, NVK și Turnip
- VK_KHR_shader_expect_assume pentru toate driverele Vulkan
- VK_KHR_shader_maximal_reconvergence pentru RADV, ANV și NVK
- VK_KHR_shader_quad_control pentru RADV
- VK_KHR_shader_subgroup_uniform_control_flow pentru NVK
- VK_EXT_device_address_binding_report pentru RADV
- VK_EXT_external_memory_dma_buf pentru lavapipe
- VK_EXT_queue_family_foreign pentru lavapipe
- VK_EXT_shader_object pentru RADV
- VK_EXT_nested_command_buffer pentru NVK și RADV
- VK_EXT_queue_family_foreign pentru NVK
- VK_EXT_image_drm_format_modifier pentru NVK
Sursa: opennet.ro
