Рэліз Mesa 21.2, свабоднай рэалізацыі OpenGL і Vulkan

Пасля трох месяцаў распрацоўкі апублікаваны рэліз свабоднай рэалізацыі API OpenGL і Vulkan – Mesa 21.2.0. Першы выпуск галінкі Mesa 21.2.0 мае эксперыментальны статус - пасля правядзення канчатковай стабілізацыі кода будзе выпушчана стабільная версія 21.2.1.

У Mesa 21.2/4.6 рэалізавана поўная падтрымка OpenGL 965 для драйвераў 4.5, iris (Intel), radeonsi (AMD), zink і llvmpipe. Падтрымка OpenGL 600 даступная для GPU AMD (r0) і NVIDIA (nvc4.3), а OpenGL 3 для virgl (віртуальны GPU Virgil1.2D для QEMU/KVM). Падтрымка Vulkan 1.1 рэалізаваная для карт Intel і AMD, а таксама ў рэжыме эмулятара (vn), падтрымка Vulkan 1.0 даступная для GPU Qualcomm і праграмнага растэрызатара lavapipe, а Vulkan 4 для GPU Broadcom VideoCore VI (Raspberry Pi XNUMX).

Асноўныя навіны:

  • У склад уключаны OpenGL-драйвер asahi з пачатковай падтрымкай графічнага працэсара, які пастаўляецца ў чыпах Apple M1. Драйвер выкарыстоўвае інтэрфейс Gallium і падтрымлівае большую частку магчымасцяў OpenGL 2.1 і OpenGL ES 2.0, але пакуль непрыдатны для запуску большасці гульняў. Код драйвера заснаваны на эталонным Gallium-драйверы noop з пераносам некаторага кода з драйвера Panfrost, які развіваецца для GPU ARM Mali.
  • У склад уключаны OpenGL-драйвер Crocus з падтрымкай старых GPU Intel (на базе мікраархітэктур Gen4-Gen7), не падтрымоўваных драйверам Iris. У адрозненне ад драйвера i965 новы драйвер заснаваны на архітэктуры Gallium3D, якая выносіць задачы кіравання памяццю на бок DRI-драйвера ў ядры Linux і якая прадстаўляе гатовы трэкер станаў з падтрымкай кэша паўторнага выкарыстання выводных аб'ектаў.
  • У склад уключаны драйвер PanVk, які прадстаўляе падтрымку графічнага API Vulkan для GPU ARM Mali Midgard і Bifrost. PanVk развіваецца супрацоўнікамі кампаніі Collabora і пазіцыянуецца як працяг развіцця праекту Panfrost, які забяспечвае падтрымку OpenGL.
  • У драйверы Panfrost для GPU Midgard (Mali T760 і навей) і GPU Bifrost (Mali G31, G52, G76) рэалізавана падтрымка OpenGL ES 3.1. З далейшых планаў адзначаецца правядзенне працы па павелічэнні прадукцыйнасці на чыпах Bifrost і рэалізацыя падтрымкі GPU на базе архітэктуры Valhall (Mali G77 і навейшы).
  • У 32-разрадных зборках для архітэктуры x86 замест інструкцый x87 для матэматычных вылічэнняў задзейнічаны інструкцыі sse2.
  • У драйверы Nouveau nv50 для GPU NVIDIA GT21x (GeForce GT 2×0) рэалізавана падтрымка OpenGL ES 3.1.
  • У Vulkan-драйвер TURNIP і OpenGL-драйвер Freedreno, якія развіваюцца для GPU Qualcomm Adreno, рэалізавана пачатковая падтрымка GPU Adreno a6xx gen4 (a660, a635).
  • У Vulkan-драйвер RADV (AMD) дададзеная падтрымка адсявання прымітываў (primitive culling) з выкарыстаннем шэйдарных рухавікоў NGG (Next-Gen Geometry). Рэалізавана магчымасць зборкі драйвера RADV на платформе Windows з выкарыстаннем кампілятара MSVC.
  • У Vulkan-драйверы ANV (Intel) і OpenGL-драйверы Iris праведзена падрыхтоўчая праца па забеспячэнні падтрымкі будучых відэакарт Intel Xe-HPG (DG2). У тым ліку ўключаны пачатковыя магчымасці, звязаныя з трасіроўкай прамянёў і падтрымкай шэйдараў для трасіроўкі прамянёў.
  • У драйверы lavapipe з рэалізацыяй праграмнага растэрызатара для API Vulkan (аналаг llvmpipe, але для Vulkan, які выконвае трансляцыю выклікаў API Vulkan у API Gallium) рэалізаваная падтрымка рэжыму "wideLines" (забяспечвае падтрымку ліній з шырынёй, якая перавышае значэнне 1.0).
  • Рэалізавана падтрымка дынамічнага выяўлення і загрузкі альтэрнатыўных бэкэндаў GBM (Generic Buffer Manager). Змена нацэлена на паляпшэнне падтрымкі Wayland на сістэмах з драйверамі NVIDIA.
  • У драйверы Zink (рэалізацыя API OpenGL па-над Vulkan, якая дазваляе атрымаць апаратна паскораны OpenGL пры наяўнасці ў сістэме драйвераў, абмежаваных падтрымкай толькі API Vulkan) рэалізаваная падтрымка OpenGL-пашырэнняў GL_ARB_sample_locations, GL_ARB_sparse_buffer, GL_ARB_shader _shader_clock. Дададзеныя мадыфікатары фармату DRM (Direct Rendering Manager, уключана пашырэнне VK_EXT_image_drm_format_modifier).
  • У Vulkan-драйверы RADV (AMD), ANV (Intel) і lavapipe дададзена падтрымка пашырэнняў:
    • 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).

Крыніца: opennet.ru

Дадаць каментар