Пускане на Mesa 21.2, безплатна реализация на OpenGL и Vulkan

След три месеца разработка беше публикувана версията на безплатната реализация на OpenGL и Vulkan API, Mesa 21.2.0. Първото издание на клона Mesa 21.2.0 има експериментален статус - след окончателното стабилизиране на кода ще бъде пусната стабилна версия 21.2.1.

Mesa 21.2 има пълна поддръжка на OpenGL 4.6 за драйверите 965, iris (Intel), radeonsi (AMD), zink и llvmpipe. Поддръжката на OpenGL 4.5 е налична за графични процесори AMD (r600) и NVIDIA (nvc0) и OpenGL 4.3 за virgl (виртуален графичен процесор Virgil3D за QEMU/KVM). Поддръжката на Vulkan 1.2 е налична за карти Intel и AMD, както и в режим на емулатор (vn), поддръжката на Vulkan 1.1 е налична за графични процесори Qualcomm и софтуерен растеризатор lavapipe и Vulkan 1.0 за графични процесори Broadcom VideoCore VI (Raspberry Pi 4).

Основни иновации:

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

Източник: opennet.ru

Добавяне на нов коментар