Vydanie Mesa 21.2, bezplatnej implementácie OpenGL a Vulkan

Po troch mesiacoch vývoja bolo zverejnené vydanie bezplatnej implementácie OpenGL a Vulkan API – Mesa 21.2.0. Prvé vydanie vetvy Mesa 21.2.0 má experimentálny status – po konečnej stabilizácii kódu vyjde stabilná verzia 21.2.1.

Mesa 21.2 obsahuje plnú podporu pre OpenGL 4.6 pre ovládače 965, iris (Intel), radeonsi (AMD), zink a llvmpipe. Podpora OpenGL 4.5 je dostupná pre GPU AMD (r600) a NVIDIA (nvc0) a podpora OpenGL 4.3 pre virgl (virtuálny GPU Virgil3D pre QEMU/KVM). Podpora Vulkan 1.2 je k dispozícii pre karty Intel a AMD, ako aj v režime emulátora (vn), podpora Vulkan 1.1 je k dispozícii pre GPU Qualcomm a softvérový rasterizátor lavapipe a Vulkan 1.0 je k dispozícii pre GPU Broadcom VideoCore VI (Raspberry Pi 4) .

Hlavné inovácie:

  • Ovládač asahi OpenGL je súčasťou počiatočnej podpory pre GPU, ktorý je súčasťou čipov Apple M1. Ovládač používa rozhranie Gallium a podporuje väčšinu funkcií OpenGL 2.1 a OpenGL ES 2.0, ale zatiaľ nie je vhodný na spustenie väčšiny hier. Kód ovládača je založený na referenčnom noop ovládači Gallium, pričom niektoré kódy sú prenesené z ovládača Panfrost vyvíjaného pre GPU ARM Mali.
  • Ovládač Crocus OpenGL je súčasťou podpory pre staršie GPU Intel (založené na mikroarchitektúrach Gen4-Gen7), ktoré ovládač Iris nepodporuje. Na rozdiel od ovládača i965 je nový ovládač založený na architektúre Gallium3D, ktorá outsourcuje úlohy správy pamäte ovládaču DRI v jadre Linuxu a poskytuje pripravený sledovač stavu s podporou pre opätovné použitie vyrovnávacej pamäte výstupných objektov.
  • Zahrnutý je ovládač PanVk, ktorý poskytuje podporu pre grafické API Vulkan pre GPU ARM Mali Midgard a Bifrost. PanVk je vyvíjaný zamestnancami Collabora a je umiestnený ako pokračovanie vývoja projektu Panfrost, ktorý poskytuje podporu pre OpenGL.
  • Ovládač Panfrost pre GPU Midgard (Mali T760 a novší) a GPU Bifrost (Mali G31, G52, G76) podporuje OpenGL ES 3.1. Plány do budúcnosti zahŕňajú prácu na zvýšení výkonu na čipoch Bifrost a implementáciu podpory GPU založenej na architektúre Valhall (Mali G77 a novšia).
  • 32-bitové zostavy x86 používajú na matematické výpočty pokyny sse87 namiesto pokynov x2.
  • Ovládač Nouveau nv50 pre GPU NVIDIA GT21x (GeForce GT 2×0) podporuje OpenGL ES 3.1.
  • Ovládač Vulkan TURNIP a ovládač OpenGL Freedreno, vyvinutý pre GPU Qualcomm Adreno, majú počiatočnú podporu pre GPU Adreno a6xx gen4 (a660, a635).
  • Ovládač RADV (AMD) Vulkan pridal podporu pre primitívne vyraďovanie pomocou shaderov NGG (Next-Gen Geometry). Bola implementovaná možnosť zostaviť ovládač RADV na platforme Windows pomocou kompilátora MSVC.
  • Vykonali sa prípravné práce na ovládači ANV Vulkan (Intel) a ovládači Iris OpenGL, aby sa zabezpečila podpora pre nadchádzajúce grafické karty Intel Xe-HPG (DG2). To zahŕňa počiatočné funkcie súvisiace so sledovaním lúčov a podporou shaderov sledovania lúčov.
  • Ovládač lavapipe, ktorý implementuje softvérový rasterizátor pre Vulkan API (analogický ako llvmpipe, ale pre Vulkan, ktorý prekladá volania API Vulkan do Gallium API), podporuje režim „wideLines“ (poskytuje podporu pre čiary so šírkou presahujúcou 1.0).
  • Bola implementovaná podpora pre dynamické zisťovanie a načítanie alternatívnych backendov GBM (Generic Buffer Manager). Zmena je zameraná na zlepšenie podpory Wayland na systémoch s ovládačmi NVIDIA.
  • Ovládač Zink (implementácia rozhrania OpenGL API nad Vulkan, ktorá vám umožňuje získať hardvérovo akcelerované OpenGL, ak má systém ovládače obmedzené iba na podporu rozhrania Vulkan API) podporuje rozšírenia OpenGL GL_ARB_sample_locations, GL_ARB_sparse_buffer, GL_ARB_shader_group_vote, GL_shadermin_clock_texture_filtermin_clockARB Pridané modifikátory formátu DRM (Direct Rendering Manager, povolené rozšírenie VK_EXT_image_drm_format_modifier).
  • Do ovládačov Vulkan RADV (AMD), ANV (Intel) a lavapipe bola pridaná podpora pre rozšírenia:
    • VK_EXT_provoking_vertex (RADV);
    • VK_EXT_extended_dynamic_state2 (RADV);
    • VK_EXT_global_priority_query (RADV);
    • VK_EXT_physical_device_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_rasterization(lavapipe);
    • VK_EXT_multi_draw(ANV, lavapipe, RADV);
    • VK_KHR_separate_depth_stencil_layouts(lavapipe);
    • VK_EXT_separate_stencil_usage(lavapipe);
    • VK_EXT_extended_dynamic_state2 (lavapipe).

Zdroj: opennet.ru

Pridať komentár