Po trzech miesiącach prac opublikowano wersję wolnej implementacji API Vulkan, OpenGL, OpenGL ES i OpenCL — Mesa 26.3.0. Pierwsze wydanie gałęzi Mesa 26.3.0 ma status eksperymentalny — po zakończeniu stabilizacji kodu zostanie wydana stabilna wersja 26.3.1.
W Mesa 26.3 dostępna jest obsługa graficznego API Vulkan 1.4 w sterownikach ANV dla GPU Intel, RADV dla GPU AMD, NVK dla GPU NVIDIA, HoneyKrisp (hk) dla GPU Apple, Turnip dla GPU Qualcomm, PanVK dla GPU ARM Mali, w programowym rastrekizatorze lavapipe (lvp) oraz w trybie emulatora (vn). W sterownikach v3dv (GPU Broadcom VideoCore dla Raspberry Pi 4+) i dzn (implementacja Vulkan na bazie Direct3D 12) obsługiwany jest Vulkan 1.0, w sterowniku kk (KosmicKrisp, Vulkan na bazie Metal) — Vulkan 1.1, a w sterowniku pvr (GPU Imagination PowerVR) — Vulkan 1.2.
W Mesa zapewniono także pełną obsługę OpenGL 4.6 dla sterowników iris (GPU Intel Gen 8+), radeonsi (AMD), Crocus (stare GPU Intel Gen4-Gen7.5), AMD (r600), zink, llvmpipe, virgl (wirtualny GPU Virgil3D dla QEMU/KVM), freedreno (Qualcomm Adreno), d3d12 (warstwa do działania OpenGL na bazie DirectX 12) oraz asahi (GPU AGX używany w chipach Apple M1 i M2). Obsługa OpenGL 4.5 jest dostępna dla GPU NVIDIA (nvc0). Obsługa OpenGL 3.3 jest dostępna w sterownikach softpipe (programowy rastrekizator) i nv50 (NVIDIA NV50). W sterownikach panfrost (GPU ARM Mali) i v3d (GPU Broadcom VideoCore) obsługiwany jest OpenGL 3.1.
Główne nowości:
- Dodano zasady dla asystentów AI, w których podkreślono, że Mesa rozwija społeczność ludzi, w związku z tym agentom AI nie powinno się otwierać pull requestów ani publikować komentarzy. Dla commitów, które zostały wysłane przez ludzi, ale stworzone z użyciem AI, zaleca się jawnie oznaczenie tagiem „Generated-by: LLM” lub „Assisted-by: LLM”. Dla sterowników asahi, nouveau, panfrost, imagination, jay i poly wprowadzono osobne ograniczenia dotyczące użycia AI przez programistów.
- W sterowniku panvk dla GPU ARM Mali v6-7 zrealizowano wsparcie
Vulkan 1.3. - W sterowniku Etnaviv dla GPU Vivante serii HALTI5 zrealizowano wsparcie OpenGL ES 3.0 i języka shaderów GLSL 1.30.
- W sterowniku OpenGL Panfrost dodano wsparcie dla GPU Mali G68, G715 i G615.
- W sterowniku Vulkan PanVK dodano wsparcie dla GPU Mali G715 i G615.
- W sterowniku Vulkan pvr dodano wsparcie dla GPU Imagination PowerVR BXM-4-64.
- Dla GPU Intel Xe2 i Xe3 domyślnie używany jest kompilator shaderów Intel Jay.
- Stabilizowano i włączono domyślnie wsparcie dla graficznej podsystemu chipów Intel Nova Lake.
- W sterowniku NVK (NVIDIA) dodano wsparcie dla rozszerzeń Vulkan w celu przyspieszenia przetwarzania wideo.
- Dla GPU Intel włączono kompresję buforów, co pozwoliło na zwiększenie wydajności w grach uruchamianych za pomocą DXVK.
- Dodano wsparcie dla GPU AMD GFX1171 w oparciu o mikroarchitekturę RDNA 4m.
- Dodano wsparcie dla rozszerzeń Vulkan:
- VK_AMD_anti_lag dla RADV;
- VK_IMG_filter_linear_2d dla pvr;
- VK_KHR_maintenance7 dla pvr;
- VK_KHR_maintenance4 dla panvk/v6-7;
- VK_KHR_maintenance5 dla panvk/v6-7;
- VK_KHR_maintenance7 dla panvk/v6-7;
- VK_KHR_maintenance8 dla panvk/v6-7;
- VK_KHR_shader_float_controls2 dla panvk/v6-7;
- VK_KHR_shader_subgroup_extended_types dla panvk/v6-7;
- VK_EXT_subgroup_size_control dla panvk/v6-7;
- VK_ARM_shader_core_builtins dla panvk/v6-7;
- VK_ARM_shader_core_properties dla panvk/v6-7;
- VK_ARM_scheduling_controls dla panvk/v6-7;
- VK_KHR_synchronization2 dla pvr;
- VK_KHR_copy_memory_indirect dla panvk;
- VK_KHR_maintenance6 dla panvk/v6-7;
- VK_KHR_spirv_1_4 dla panvk/v6-7;
- VK_EXT_device_memory_report dla v3dv;
- VK_KHR_video_encode_feedback2 dla RADV;
- VK_EXT_global_priority dla pvr;
- VK_EXT_global_priority_query dla pvr;
- VK_KHR_global_priority dla pvr;
- VK_KHR_cooperative_matrix dla panvk;
- VK_EXT_inline_uniform_block dla pvr;
- VK_KHR_shader_fma dla pvr;
- VK_EXT_cooperative_matrix_maintenance1 dla radv, lavapipe;
- VK_KHR_device_address_commands dla nvk;
- VK_KHR_shader_constant_data dla panvk;
- VK_KHR_shader_float_controls2 dla pvr;
- VK_KHR_performance_query dla GFX12;
- VK_EXT_primitive_topology_list_restart dla pvr;
- VK_KHR_incremental_present dla panvk;
- VK_EXT_swapchain_colorspace dla panvk;
- VK_KHR_push_descriptor dla pvr;
- VK_EXT_image_sliced_view_of_3d dla pvr;
- VK_EXT_image_compression_control dla panvk;
- VK_KHR_shader_untyped_pointers dla HK;
- VK_KHR_maintenance10 dla HK;
- VK_KHR_shader_fma dla HK;
- VK_EXT_primitive_restart_index dla HK;
- VK_QCOM_rotated_copy_commands dla Turnip;
- VK_KHR_maintenance10 dla panvk;
- VK_KHR_map_memory2 dla v3dv;
- VK_KHR_unified_image_layouts dla v3dv;
- VK_INTEL_shader_integer_functions2 dla panvk;
- VK_KHR_internally_synchronized_queues dla NVK;
- VK_KHR_maintenance11 dla NVK;
- VK_EXT_primitive_restart_index dla NVK;
- VK_KHR_maintenance11 dla NVK;
- VK_EXT_transform_feedback dla pvr.
- W sterowniku OpenGL radeonsi dodano wsparcie dla rozszerzenia EGL EGL_NV_context_priority_realtime.
- W sterowniku panfrost dla GPU Vivante serii HALTI5 dodano wsparcie dla rozszerzeń OpenGL:
- GL_ARB_texture_multisample;
- GL_EXT_color_buffer_float;
- GL_EXT_conservative_depth;
- GL_EXT_draw_buffers_indexed;
- GL_EXT_EGL_image_storage;
- GL_EXT_EGL_image_storage_compression;
- GL_EXT_shader_integer_mix;
- GL_EXT_sRGB_write_control;
- GL_EXT_texture_compression_rgtc;
- GL_EXT_texture_sRGB_decode;
- GL_EXT_texture_sRGB_R8;
- GL_EXT_texture_sRGB_RG8;
- GL_EXT_texture_storage_compression;
- GL_MESA_framebuffer_flip_y;
- GL_MESA_shader_integer_functions;
- GL_OES_draw_buffers_indexed;
- GL_OES_EGL_image_external_essl3;
- GL_EXT_texture_integer;
- GL_ARB_shader_bit_encoding;
- GL_ARB_texture_rgb10_a2ui.
- Dodano wsparcie dla rozszerzeń OpenCL:
- cl_ext_float_atomics dla iris, llvmpipe i zink;
- cl_khr_semaphore dla iris;
- cl_khr_external_semaphore dla iris;
- cl_khr_external_semaphore_sync_fd dla iris.
Źródło: opennet.ru
