Po třech měsících vývoje byla vydána open source implementace API OpenGL a Vulkan, Mesa 25.3.0. Nový tag vydání byl v Gitu publikován 15. listopadu, ale oznámení na webových stránkách se objevilo až včera (vydání zatím nebylo oznámeno v mailing listu). První vydání větve Mesa 25.3.0 je experimentální; po úplné stabilizaci kódu bude vydána stabilní verze 25.3.1.
Mesa 25.3 přidává podporu pro grafické API Vulkan 1.4 v ovladačích ANV pro grafické karty Intel, RADV pro grafické karty AMD, NVK pro grafické karty NVIDIA, HoneyKrisp (hk) pro grafické karty Apple, Turnip pro grafické karty Qualcomm, PanVK pro grafické karty ARM Mali, softwarovém rasterizátoru lavapipe (lvp) a emulátoru (vn). Ovladače v3dv (Broadcom VideoCore GPU pro Raspberry Pi 4+) a dzn (Vulkan přes Direct3D 12) podporují Vulkan 1.0, ovladač kk (KosmicKrisp, Vulkan přes Metal) podporuje Vulkan 1.1 a ovladač pvr (Imagination PowerVR GPU) podporuje Vulkan 1.2.
Mesa také poskytuje plnou podporu OpenGL 4.6 pro grafické karty iris (GPU Intel Gen 8+), radeonsi (AMD), Crocus (starší GPU Intel Gen4-Gen7), AMD (r600), zink, llvmpipe, virgl (virtuální GPU virgil3D pro QEMU/KVM), freedreno (Qualcomm Adreno), d3d12 (vrstva OpenGL nad DirectX 12) a asahi (GPU AGX používaná v čipech Apple M1 a M2). Podpora OpenGL 4.5 je k dispozici pro GPU NVIDIA (nvc0). Podpora OpenGL 3.3 je k dispozici v ovladačích softpipe (softwarový rasterizátor) a nv50 (NVIDIA NV50). OpenGL 3 je podporován v ovladačích panfrost (GPU ARM Mali) a v3.1d (GPU Broadcom VideoCore).
Hlavní inovace:
- Balíček obsahuje nový ovladač Vulkan, KosmicKrisp (kk), který implementuje grafické API Vulkan nad rozhraním Metal API, vyvinutým společností Apple a používaným v... macOSOvladač byl vytvořen společností LunarG pro použití na počítačích Mac s čipy Apple Silicon. Ve své současné podobě je ovladač plně kompatibilní s rozhraním Vulkan 1.1 API, ale je známo, že se velmi blíží podpoře Vulkan 1.3.
- Přidán ovladač ethos pro nervový procesor Arm Ethos-U65.
- Ovladač Vulkan PVR, vyvinutý pro grafickou kartu Imagination PowerVR, poskytuje podporu pro Vulkan 1.2.
- Ovladač RADV Vulkan byl aktualizován s optimalizacemi, které výrazně zvyšují výkon spouštěcího enginu Llama.cpp pro rozsáhlé jazykové modely při použití backendu Vulkan na systémech s grafickými kartami AMD. V některých testech llama-bench je konfigurace založená na ovladači RADV o 31 % rychlejší než ovladač AMDVLK a stack ROCm pro zpracování požadavků (testy prompt processingu „pp“) a o 4 % rychlejší pro generování tokenů (testy generování tokenů „tg“).
- Podpora pro rozhraní VDPAU (Video Decode and Presentation API for Unix) vytvořené společností NVIDIA byla odstraněna. Důvodem odstranění je, že VDPAU lze použít pouze na systémech s X11 a OpenGL, a to kvůli chybějící podpoře pro Wayland a Vulkan. Rozhraní VDPAU API má navíc omezení, která mu brání ve správném dekódování některých video streamů. Místo VDPAU se navrhuje použít VA-API (Video Acceleration API), které lze použít s Waylandem a Vulkanem a má lepší podporu aplikací.
- Ovladač Zink, který implementuje OpenGL 4.6 nad Vulkanem, implementuje podporu pro síťové shadery, které poskytují alternativní způsob generování kolekcí geometrických primitiv.
- Ovladač rusticl nyní podporuje rozšíření OpenCL pro práci se semafory (cl_khr_semaphore a cl_khr_external_semaphore).
- Do kompilátoru shaderů byla přidána funkce pro nahrazení shaderů SPIR-V.
- Implementována vrstva Vulkan pro podporu technologie AMD Anti-Lag, která minimalizuje zpoždění mezi voláním vkQueueSubmit nebo vkQueueSubmit2 a zahájením operací, což pomáhá snižovat latenci při zobrazování na obrazovce ve hrách.
- Přidána podpora pro rozšíření OpenGL:
- GL_EXT_mesh_shader pro Zink
- GL_ARB_robust_buffer_access_behavior pro Panfrost
- GL_KHR_robust_buffer_access_behavior pro Panfrost
- GL_KHR_robustness pro Panfrost a v3d
- GL_ATI_meminfo pro r300
- GL_NVX_gpu_memory_info pro r300
- GL_NV_shader_atomic_int64 pro Radeons a Panfrost V9+
- GL_NV_representative_fragment_test pro zink
- EGL_EXT_create_context_robustness pro Panfrost V10+
- Ovladač ANV (Intel) implementuje rozšíření Vulkan: VK_KHR_shader_untyped_pointers
- Ovladač RADV (AMD) implementuje rozšíření Vulkan:
- VK_EXT_ycbcr_2plane_444_formats
- VK_KHR_shader_untyped_pointers
- VK_KHR_video_encode_intra_refresh
- VK_KHR_video_encode_quantization_map
- Ovladač NVK (NVIDIA) implementuje rozšíření Vulkan:
- VK_AMD_buffer_marker
- Údržba VK_KHR8
- Údržba VK_KHR9
- VK_NVX_image_view_handle
- Ovladač HoneyKrisp (Apple) implementuje rozšíření OpenGL: VK_KHR_maintenance9
- Ovladač PanVK (ARM Mali GPU) implementuje rozšíření Vulkan:
- VK_ARM_shader_core_builtins
- VK_EXT_mutable_descriptor_type
- Údržba VK_KHR7
- Údržba VK_KHR8
- Údržba VK_KHR9
- Ovladač pvr (GPU Imagination PowerVR) implementuje rozšíření Vulkan:
- VK_EXT_border_color_swizzle
- VK_EXT_color_write_enable
- VK_EXT_custom_border_color
- VK_EXT_depth_clamp_zero_one
- VK_EXT_depth_clip_enable
- VK_EXT_extended_dynamic_state
- VK_EXT_extended_dynamic_state2
- VK_EXT_extended_dynamic_state3
- VK_EXT_image_2d_view_of_3d
- Rasterizace_ext_řádků_VK
- VK_EXT_map_memory_placed
- VK_EXT_physical_device_drm
- VK_EXT_provoking_vertex
- VK_EXT_queue_family_foreign
- VK_EXT_robustnost2
- VK_EXT_separate_stencil_usage
- VK_EXT_shader_demote_to_helper_invocation
- VK_EXT_shader_replicated_composites
- VK_EXT_vertex_attribute_divisor
- VK_EXT_zero_initialize_device_memory
- VK_KHR_buffer_device_address
- VK_KHR_create_renderpass2
- VK_KHR_dedicated_allocation
- VK_KHR_depth_stencil_resolve
- Šablona_aktualizace_descriptoru_VK_KHR
- Skupina_zařízení_VK_KHR
- Vytvoření skupiny zařízení VK_KHR
- VK_KHR_imageless_framebuffer
- VK_KHR_line_rasterization
- Údržba VK_KHR1
- Údržba VK_KHR2
- Údržba VK_KHR3
- VK_KHR_map_memory2
- VK_KHR_multiview
- VK_KHR_robustness2
- VK_KHR_sampler_mirror_clamp_to_edge
- VK_KHR_separate_depth_stencil_layouts
- VK_KHR_shader_draw_parameters
- VK_KHR_shader_float_controls
- VK_KHR_shader_non_semantic_info
- VK_KHR_shader_relaxed_extended_instruction
- VK_KHR_shader_subgroup_extended_types
- VK_KHR_shader_terminate_invocation
- VK_KHR_spirv_1_4
- VK_KHR_swapchain_mutable_format
- VK_KHR_vertex_attribute_divisor
- VK_KHR_wayland_surface
- Implementovaná rozšíření OpenCL:
- cl_ext_immutable_memory_objects
- cl_khr_external_semaphore pro radeonsi a zink
- cl_khr_external_semaphore_sync_fd pro Radeons a Zink
- cl_khr_semaphore pro radeonsi a zink
Dále stojí za zmínku vydání nové verze specifikace Vulkan 1.4.333, která navrhuje nové rozšíření VK_EXT_ray_tracing_invocation_reorder, jež zvyšuje výkon ray tracingu v provedených testech o 47 % při použití SER (Shader Execution Reordering) ve vk_gltf_renderer.
Zdroj: opennet.ru
