Három hónapos fejlesztés után megjelent az OpenGL és a Vulkan API ingyenes implementációja, a Mesa 21.2.0. A Mesa 21.2.0 ág első kiadása kísérleti státuszú - a kód végleges stabilizálása után megjelenik a 21.2.1 stabil verzió.
A Mesa 21.2 teljes OpenGL 4.6 támogatással rendelkezik a 965, az iris (Intel), a radeonsi (AMD), a zink és az llvmpipe illesztőprogramokhoz. Az OpenGL 4.5 támogatása elérhető az AMD (r600) és NVIDIA (nvc0) GPU-khoz, az OpenGL 4.3 pedig a virgl-hez (Virgil3D virtuális GPU QEMU/KVM-hez). A Vulkan 1.2 támogatás Intel és AMD kártyákhoz, valamint emulátor (vn) módban érhető el, a Vulkan 1.1 támogatás a Qualcomm GPU-khoz és a lavapipe szoftverraszterezőhöz, a Vulkan 1.0 pedig a Broadcom VideoCore VI (Raspberry Pi 4) GPU-khoz érhető el.
Főbb újítások:
- Az asahi OpenGL illesztőprogram része az Apple M1 chipekben található GPU kezdeti támogatása. Az illesztőprogram a Gallium felületet használja, és támogatja az OpenGL 2.1 és az OpenGL ES 2.0 legtöbb funkcióját, de a legtöbb játék futtatására még nem alkalmas. Az illesztőprogram kódja a noop referencia Gallium illesztőprogramon alapul, és néhány kódot az ARM Mali GPU-hoz fejlesztett Panfrost illesztőprogramból portoltak át.
- A Crocus OpenGL illesztőprogram része a régebbi Intel GPU-k támogatása (a Gen4-Gen7 mikroarchitektúrákon alapul), amelyeket az Iris illesztőprogram nem támogat. Az i965 illesztőprogramtól eltérően az új meghajtó a Gallium3D architektúrán alapul, amely a memóriakezelési feladatokat a Linux kernelben lévő DRI-illesztőprogramra bízza, és kész állapotkövetőt biztosít a kimeneti objektum újrafelhasználási gyorsítótárának támogatásával.
- A PanVk illesztőprogramot tartalmazza, amely támogatja a Vulkan grafikus API-t az ARM Mali Midgard és a Bifrost GPU-khoz. A PanVk-t a Collabora alkalmazottai fejlesztik, és az OpenGL-t támogató Panfrost projekt fejlesztésének folytatásaként pozicionálják.
- A GPU Midgard (Mali T760 és újabb) és a GPU Bifrost (Mali G31, G52, G76) Panfrost illesztőprogramja támogatja az OpenGL ES 3.1-et. A további tervek között szerepel a Bifrost chipek teljesítményének növelése, valamint a Valhall architektúrán alapuló GPU-k támogatása (Mali G77 és újabb).
- Az x32 architektúrához készült 86 bites buildek sse87 utasításokat használnak az x2 utasítások helyett a matematikai számításokhoz.
- Az NVIDIA GT50x GPU (GeForce GT 21x2) Nouveau nv0 illesztőprogramja támogatja az OpenGL ES 3.1-et.
- A Qualcomm Adreno GPU-khoz kifejlesztett TURNIP Vulkan illesztőprogram és a Freedreno OpenGL illesztőprogram kezdetben támogatja az Adreno a6xx gen4 (a660, a635) GPU-kat.
- Az NGG (Next-Gen Geometry) shader motorokkal történő primitív selejtezés támogatása hozzáadásra került a RADV (AMD) Vulkan illesztőprogramhoz. Megvalósította a RADV illesztőprogram felépítésének képességét Windows platformon az MSVC fordító segítségével.
- Az ANV Vulkan illesztőprogram (Intel) és az Iris OpenGL illesztőprogram a közelgő Intel Xe-HPG (DG2) grafikus kártyák támogatására készült. Ez magában foglalja a sugárkövetéssel kapcsolatos kezdeti funkciókat és a sugárkövetés shader-támogatását.
- A lavapipe illesztőprogram a Vulkan API szoftveres raszterezőjével (hasonlóan az llvmpipe-hoz, de a Vulkan esetében, amely a Vulkan API hívásokat a Gallium API-ra fordítja) támogatja a "wideLines" módot (az 1.0-nál nagyobb vonalakat támogatja ).
- Bevezetett támogatás az alternatív GBM (Generic Buffer Manager) háttérprogramok dinamikus felfedezéséhez és betöltéséhez. A változtatás célja, hogy javítsa a Wayland támogatását az NVIDIA illesztőprogramokkal rendelkező rendszereken.
- A Zink illesztőprogram (az OpenGL API megvalósítása a Vulkan tetején, amely lehetővé teszi hardveresen gyorsított OpenGL elérését, ha a rendszer csak a Vulkan API-t támogató illesztőprogramokkal rendelkezik) támogatja a GL_ARB_sample_locations, GL_ARB_sparse_buffer, GL_ARB_shader_group_ARBhaste, GL_ARB_shader_group_ARBhaste és texture_fil_ARBhaste OpenGL bővítményeket. der_clock. Hozzáadott DRM-formátum módosítók (Direct Rendering Manager, VK_EXT_image_drm_format_modifier bővítmény).
- Hozzáadott támogatás a RADV (AMD), ANV (Intel) és a lavapipe Vulkan illesztőprogramokhoz:
- VK_EXT_provoking_vertex (RADV);
- VK_EXT_extended_dynamic_state2 (RADV);
- VK_EXT_global_priority_query (RADV);
- VK_EXT_fizikai_eszköz_drm (RADV);
- VK_KHR_shader_subgroup_uniform_control_flow (RADV, ANV);
- VK_EXT_color_write_enable (RADV);
- VK_EXT_acquire_drm_display (RADV, ANV);
- VK_EXT_vertex_input_dynamic_state(lavapipe);
- VK_EXT_line_raszterizálás (lavapipe);
- VK_EXT_multi_draw(ANV, lavapipe, RADV);
- VK_KHR_külön_mélységi_stencil_elrendezések (lavapipe);
- VK_EXT_separate_stencil_usage(lavapipe);
- VK_EXT_extended_dynamic_state2 (lavapipe).
Forrás: opennet.ru