Megjelent az OpenGL és Vulkan API ingyenes implementációjának új verziója — Mesa 24.1.0. Az 24.1.0 verzió első kiadása kísérleti státuszban van — a kód végső stabilizálása után fogják kiadni a 24.1.1 stabil verziót.
A Mesa 24.0 verzióban elérhető a Vulkan 1.3 grafikus API támogatása az anv illesztőprogramban Intel GPU-hoz, radv AMD GPU-hoz, NVK NVIDIA GPU-hoz, tu Qualcomm GPU-hoz, a lavapipe (lvp) szoftveres raszterizálóban és az emulátor (vn) üzemmódban. A Vulkan 1.0 támogatása a v3dv (Raspberry Pi 4 Broadcom VideoCore VI GPU) és dzn (Vulkan implementáció Direct3D 12 felett) illesztőprogramokban van megvalósítva.
A Mesa teljes körű OpenGL 4.6 támogatást nyújt az iris (Intel Gen 8+ GPU), radeonsi (AMD), Crocus (régi Intel Gen4-Gen7 GPU), zink, llvmpipe, virgl (virtuális GPU Virgil3D QEMU/KVM-hez), freedreno (Qualcomm Adreno), d3d12 (OpenGL DirectX 12 felett) és asahi (AGX GPU, az Apple M1 és M2 chipekben) illesztőprogramok számára. Az OpenGL 4.5 támogatás elérhető az AMD (r600) és NVIDIA (nvc0) GPU-k számára. Az OpenGL 3.3 támogatás jelen van a softpipe (szoftveres raszterizáló) és nv50 (NVIDIA NV50) illesztőprogramokban.
Főbb újítások:
- Az asahi illesztőprogramban, amelyet az Apple ARM chipekhez használnak az AGX GPU-ja számára, biztosítva van az OpenGL 4.6 és az OpenGL ES 3.2 támogatása.
- Javították a NVK illesztőprogram teljesítményét NVIDIA GPU-kkal, melyek a Turing (GeForce GTX 16xx, RTX 20xx és Quadro RTX sorozatok), Ampere (GeForce RTX 30xx és RTX A2000/4000/5000/6000 sorozatok) és Ada (GeForce RTX 4xxx, RTX 4000 SFF, RTX 4xxx/5000/6000 Ada sorozatok) mikroarchitektúrák alapján készültek. Az illesztőprogramot széleskörű felhasználói kör számára készen állónak nyilvánították. A Vulkan 1.3 támogatás a NVK-ban a Khronos konzorcium által tanúsítva van. Javították a DXVK pálya teljesítményét a NVK felett, amely a Direct3D 9, 10 és 11 megvalósítást biztosít.
- Hozzáadtak egy módosítást, amely lehetővé teszi a Zink illesztőprogram (OpenGL Vulkan felett) használatát az OpenGL 4.6 támogatásának biztosítására a NVIDIA új GPU-k esetén (a GeForce RTX 20xx-től kezdődően), amelyekkel a szokásos OpenGL illesztőprogramban, a Nouveau (NVC0) alatt problémák léphetnek fel. A Zink engedélyezéséhez az NVC0 helyett be kell állítani a „NOUVEAU_USE_ZINK=1” környezeti változót.
- A Panfrost illesztőprogramban hozzáadták a Mali G610, Mali G310 és Mali T600 GPU-k támogatását.
- Minden Vulkan illesztőprogramban megvalósításra került a kifejezett szinkronizálás (Explicit Sync) a Wayland és X11 számára. A kifejezett szinkronizálás lehetővé teszi az alkalmazások számára, hogy értesítsék a kompozit kezelőt a képkészültségről, ami csökkenti a késleltetést és megszünteti a grafikai artefaktumok megjelenését.
- Kibővítették a d3d12 illesztőprogram képességeit, amely OpenGL implementációt biztosít a DirectX 12 felett.
- A V3DV meghajtóban, amelyet a Broadcom VideoCore GPU-hoz fejlesztettek (használják a Raspberry Pi alaplapjain), támogatást kapott a dinamikus rendereléshez.
- Az ANV Vulkan-illesztő (Intel) átállt az aszinkron videomemória-térképezési műveletek (Asynchronous VM_BIND) használatára. Az Intel Xe architektúrára épülő GPU-khoz, amelyeket az Intel Arc család grafikus kártyái és a Tiger Lake processzoroktól kezdődően integrált grafika használnak, hozzáadták a GPU fagyások hibakereséséhez szükséges állapotdumpok visszaállításának lehetőségét. Előkészítést végeztek az Intel LunarLake (Xe 2) GPU chipek támogatására.
- Új Vulkan-kiterjesztések támogatása került bevezetésre:
- VK_EXT_map_memory_placed a RADV, ANV és NVK illesztőkhöz
- VK_KHR_shader_subgroup_rotate a RADV, ANV és NVK illesztőkhöz
- VK_KHR_load_store_op_none a RADV, ANV, NVK és Turnip illesztőkhöz
- VK_KHR_line_rasterization a RADV, ANV, NVK és Turnip illesztőkhöz
- VK_KHR_index_type_uint8 a RADV, ANV, NVK és Turnip illesztőkhöz
- VK_KHR_shader_expect_assume minden Vulkan-illesztőhöz
- VK_KHR_shader_maximal_reconvergence a RADV, ANV és NVK illesztőkhöz
- VK_KHR_shader_quad_control a RADV illesztőhöz
- VK_KHR_shader_subgroup_uniform_control_flow az NVK illesztőhöz
- VK_EXT_device_address_binding_report a RADV illesztőhöz
- VK_EXT_external_memory_dma_buf a lavapipe számára
- VK_EXT_queue_family_foreign a lavapipe számára
- VK_EXT_shader_object a RADV illesztőhöz
- VK_EXT_nested_command_buffer az NVK és RADV illesztőkhöz
- VK_EXT_queue_family_foreign az NVK illesztőhöz
- VK_EXT_image_drm_format_modifier az NVK illesztőhöz
Forrás: opennet.ru
