След три месеца разработка издадена свободна реализация на 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).
Основни нововъведения:
- Включен по подразбиране механизъм „transaction elimination“, отстраняващ излишни операции (например, отстраняват се операциите на презаписване на фрагменти, които не са се променили от последното рендиране).
- Добавена е поддръжка за инкрементално рисуване, което позволява да се намали потреблението на памет при рендериране на множество обекти чрез отделна обработка на фрагменти (tile).
- Добавена е поддръжка на режима AFBC 32×8, който се използва за оптимизиране на работата с буфера за изход (scan-out buffer) в някои дисплейни контролери.
- Максималната поддържана ширина и височина на текстурите е увеличена от 8192 на 32768 пиксела.
- Добавена е поддръжка на режима за текстуриране MTK_FMT_MOD_TILE_16L32S, при който фрагментираните данни се копират в временен нефрагментиран буфер преди рендиране (използва се за работа с хардуерни видео декодери, налични в SoC MediaTek).
- 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
Източник: opennet.ru
