Релиз на Mesa 21.2, свободна реализация на OpenGL и Vulkan

След три месеца разработка бе публикувана свободна реализация на API OpenGL и Vulkan — 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).

Основни нововъведения:

  • Включен е OpenGL-драйвер asahi с начална поддръжка на графичен процесор, предлаган в чиповете Apple M1. Драйверът използва интерфейса Gallium и поддържа повечето функции на OpenGL 2.1 и OpenGL ES 2.0, но засега не е подходящ за изпълнение на повечето игри. Кодът на драйвера е базиран на еталонния Gallium-драйвер noop с пренос на част от кода от драйвера Panfrost, разработван за GPU ARM Mali.
  • Включен е OpenGL-драйвер Crocus с поддръжка за стари графични процесори 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 и осигуряване на поддръжка за графични процесори на базата на архитектурата 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, който реализира софтуерен растеризатор за Vulkan API (аналог на llvmpipe, но за Vulkan, изпълняващ транслация на API повиквания от Vulkan в API Gallium), е добавена поддръжка на режим "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).
  • В 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

Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри 🔥 Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри | ProHoster