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

След три месеца разработка издадена свободна реализация на API OpenGL и Vulkan — Mesa 25.0.0. Първият релиз на версията Mesa 25.0.0 има експериментален статус — след окончателна стабилизация на кода ще бъде издадена стабилната версия 25.0.1.

В Mesa 25.0 е налична поддръжка на графичния API Vulkan 1.4 в драйверите ANV за графики Intel, RADV за графики AMD, NVK за графики NVIDIA, Asahi за графики Apple, Turnip за графики Qualcomm и в софтуерния растеризатор lavapipe (lvp). В режим на емулация (vn) се поддържа API Vulkan 1.3, в драйвера PanVK за графики ARM Mali — Vulkan 1.1, а в драйверите v3dv (графики Broadcom VideoCore за Raspberry Pi 4+) и dzn (реализация на Vulkan над Direct3D 12) — Vulkan 1.0.

В Mesa се осигурява и пълна поддръжка на OpenGL 4.6 за драйверите iris (GPU Intel Gen 8+), radeonsi (AMD), Crocus (стари GPU Intel Gen4-Gen7), zink, llvmpipe, virgl (виртуален GPU Virgil3D за QEMU/KVM), freedreno (Qualcomm Adreno), d3d12 (прослойка за функциониране на OpenGL над DirectX 12) и asahi (GPU AGX, използван в чиповете Apple M1 и M2). Поддръжката на OpenGL 4.5 е налична за GPU AMD (r600) и NVIDIA (nvc0). Поддръжката на OpenGL 3.3 е налице в драйверите softpipe (софтуерен растеризатор) и nv50 (NVIDIA NV50).

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

  • В Vulkan-драйверите ANV (Intel), RADV (AMD), NVK (NVIDIA), Asahi (Apple), PanVK (ARM Mali) и Turnip (Qualcomm), както и в софтуерния растеризатор lavapipe (lvp) е обявена поддръжка на API Vulkan 1.4 (преди това беше поддържана версия Vulkan 1.3).
  • В Vulkan-драйвера RADV е добавена начална поддръжка за GPU AMD RDNA4 (GFX12, серия AMD Radeon RX 9000).
  • Драйверът RadeonSI е прехвърлен на използване на компилационния бекенд на шейдъри ACO, разработен от Valve като алтернатива на компилатора на шейдъри LLVM. Бекендът ACO е насочен към осигуряване на генериран код, който е оптимално съобразен с шейдъри на игрални приложения, както и за постигане на много висока скорост на компилация. ACO е написан на C++ и се разработва с оглед на възможността за използване в JIT-компилация и използва бързи структури от данни, избягвайки структури, базирани на указатели.
  • Добавен е драйвер amdgpu_virtio, позволяващ на гостовата система да използва OpenGL- и Vulkan-драйвери radeonsi, radeonsi_drv_video и radv, предоставяни от хост-околната среда. Достъпът се осъществява чрез VirtIO, което осигурява висока производителност на 3D-ускорение в виртуална машина. Обявено е, че производителността на amdgpu_virtio е по-висока от тази при използването на драйверите virgl и venus, разработвани преди за достъп до Vulkan и OpenGL от гостови системи.
  • Разширени са възможностите на OpenGL-драйвера Panfrost за GPU ARM Mali.
    • Включен по подразбиране механизъм „transaction elimination“, отстраняващ излишни операции (например, отстраняват се операциите на презаписване на фрагменти, които не са се променили от последното рендиране).
    • Добавена е поддръжка за инкрементално рисуване, което позволява да се намали потреблението на памет при рендериране на множество обекти чрез отделна обработка на фрагменти (tile).
    • Добавена е поддръжка на режима AFBC 32×8, който се използва за оптимизиране на работата с буфера за изход (scan-out buffer) в някои дисплейни контролери.
    • Максималната поддържана ширина и височина на текстурите е увеличена от 8192 на 32768 пиксела.
    • Добавена е поддръжка на режима за текстуриране MTK_FMT_MOD_TILE_16L32S, при който фрагментираните данни се копират в временен нефрагментиран буфер преди рендиране (използва се за работа с хардуерни видео декодери, налични в SoC MediaTek).
  • В драйвера ANV (Intel) е добавена поддръжка на Vulkan разширения за декодиране на видео в формат AV1.
  • В Vulkan драйвера PanVK за GPU ARM Mali, базиран на архитектура V10, като Mali-G610 и Mali-G310, е реализирана поддръжка на API Vulkan 1.1 (по-рано се поддържаше версия Vulkan 1.0). PanVK е включен в списъка с драйвери, налични за използване в Mesa по подразбиране (по-рано PanVK не се появяваше в списъка с драйвери и за неговото използване беше необходимо да се зададе променлива на средата). На ARM системи компилацията на PanVK е включена по подразбиране.
  • В драйвера PanVK са реализирани Vulkan разширения:
    • VK_KHR_8bit_storage
    • VK_KHR_dedicated_allocation
    • VK_KHR_global_priority 
    • VK_KHR_index_type_uint8
    • VK_KHR_map_memory2 
    • VK_KHR_multiview
    • VK_KHR_shader_draw_parameters
    • VK_KHR_shader_float16_int8
    • VK_KHR_shader_non_semantic_info
    • VK_KHR_shader_relaxed_extended_instruction
    • VK_KHR_shader_subgroup_rotate
    • VK_KHR_vertex_attribute_divisor
    • VK_KHR_zero_initialize_workgroup_memory
    • VK_EXT_4444_formats
    • VK_EXT_global_priority_query
    • VK_EXT_global_priority 
    • VK_EXT_host_query_reset
    • VK_EXT_image_robustness 
    • VK_EXT_pipeline_robustness
    • VK_EXT_provoking_vertex 
    • VK_EXT_queue_family_foreign
    • VK_EXT_sampler_filter_minmax
    • VK_EXT_scalar_block_layout
    • VK_EXT_subgroup_size_control
    • VK_EXT_tooling_info
    • VK_EXT_subgroup_size_control
  • В драйвера RADV (AMD) е добавена поддръжка на Vulkan разширения VK_KHR_maintenance8 и VK_KHR_depth_clamp_zero_one.
  • В драйвера rusticl е добавена поддръжка на OpenCL разширение cl_khr_depth_images.

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

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