Nach dreimonatiger Entwicklungszeit wurde die Open-Source-Implementierung der OpenGL- und Vulkan-APIs, Mesa 26.1.0, veröffentlicht. Die erste Version des Mesa-26.1.0-Zweigs ist experimentell; sobald der Code vollständig stabil ist, wird die stabile Version 26.1.1 veröffentlicht.
Mesa 26.1 erweitert die ANV-Treiber für Intel-GPUs, RADV für AMD-GPUs, NVK für NVIDIA-GPUs, HoneyKrisp (hk) für Apple-GPUs, Turnip für Qualcomm-GPUs, PanVK für ARM-Mali-GPUs, den Lavapipe-Software-Rasterizer (lvp) und den Emulatormodus (vn) um Unterstützung für die Vulkan-1.4-Grafik-API. Die Treiber v3dv (Broadcom VideoCore GPU für Raspberry Pi 4+) und dzn (Vulkan über Direct3D 12) unterstützen Vulkan 1.0, der kk-Treiber (KosmicKrisp, Vulkan über Metal) Vulkan 1.1 und der pvr-Treiber (Imagination PowerVR GPU) Vulkan 1.2.
Mesa bietet außerdem vollständige OpenGL 4.6-Unterstützung für Iris (Intel Gen 8+ GPUs), Radeon Si (AMD), Crocus (ältere Intel Gen4-Gen7 GPUs), AMD (r600), Zink, llvmpipe, Virgl (virgil3D virtuelle GPU für QEMU/KVM), Freedreno (Qualcomm Adreno), d3d12 (OpenGL-Schicht über DirectX 12) und Asahi (AGX-GPU, die in Apple M1- und M2-Chips verwendet wird). OpenGL 4.5-Unterstützung ist für NVIDIA (nvc0) GPUs verfügbar. OpenGL 3.3-Unterstützung ist in den Treibern Softpipe (Software-Rasterizer) und NV50 (NVIDIA NV50) verfügbar. OpenGL 3 wird in den Treibern Panfrost (ARM Mali GPU) und V3.1D (Broadcom VideoCore GPU) unterstützt.
Wichtigste Neuerungen:
- Treiber für Intel-GPUs (Iris, Crocus und ANV) unterstützen jetzt den direkten GPU-Zugriff aus virtuellen Maschinen über native Kontexte in VirtIO-GPU. Native Kontexte verbessern die Leistung bei der Arbeit mit einer virtuellen GPU (virtio-gpu-gl) in einem Gastsystem, indem sie Befehle direkt an die eigentliche Host-GPU senden.
- Über den Zink-Treiber wurde die Unterstützung für OpenGL ES 2.0 für PowerVR-GPUs hinzugefügt, wodurch hardwarebeschleunigtes OpenGL auf Geräten ermöglicht wird, die die Vulkan-API unterstützen.
- Der rusticl OpenCL-Treiber benötigt nun eine statisch verknüpfte C++-Standardbibliothek, um korrekt mit Anwendungen zu funktionieren, die native C++-Standardbibliotheken verwenden.
- Der Radeonsi-Treiber (AMD) bietet nun Unterstützung für die OpenGL-Erweiterung GL_NV_timeline_semaphore.
- Der Panfrost-Treiber (ARM Mali) unterstützt nun die OpenGL-Erweiterung GL_EXT_shader_image_load_store.
- Der v3d-Treiber (Broadcom VideoCore) unterstützt nun die OpenGL-Erweiterung GL_ARB_sample_shading.
- Unterstützung für Vulkan-Erweiterungen hinzugefügt:
- VK_ARM_scheduling_controls für panvk
- VK_EXT_acquire_drm_display für panvk
- VK_EXT_astc_decode_mode für panvk
- VK_EXT_attachment_feedback_loop_dynamic_state für panvk
- VK_EXT_attachment_feedback_loop_layout für panvk
- VK_EXT_blend_operation_advanced für Lavapipe
- VK_EXT_color_write_enable für panvk
- VK_EXT_conditional_rendering für panvk
- VK_EXT_depth_clamp_control für panvk
- VK_EXT_descriptor_heap für RADV (wenn 'export RADV_EXPERIMENTAL=heap' eingestellt ist)
- VK_EXT_hdr_metadata für v3dv
- VK_EXT_image_drm_format_modifier für pvr
- VK_EXT_image_view_min_lod für panvk
- VK_EXT_legacy_dithering für panvk
- VK_EXT_map_memory_placed für panvk
- VK_EXT_nested_command_buffer für panvk
- VK_EXT_non_seamless_cube_map für pvr
- VK_EXT_present_timing für RADV, NVK, Turnip, ANV, Honeykrisp, panvk
- VK_EXT_primitive_restart_index für RADV
- VK_EXT_rgba10x6_formats für panvk
- VK_EXT_shader_atomic_float für panvk
- VK_EXT_shader_stencil_export für panvk
- VK_EXT_zero_initialize_device_memory für panvk
- VK_KHR_copy_memory_indirect für nvk, RADV/GFX8+
- VK_KHR_Geräteadressenbefehle für RADV
- VK_{KHR,EXT}_{surface,swapchain}_maintenance1 für panvk
- VK_KHR_get_display_properties2 für panvk
- VK_KHR_get_surface_capabilities2 für panvk
- VK_KHR_internally_synchronized_queues für RADV
- VK_KHR_maintenance4 für PVR
- VK_KHR_pipeline_executable_properties für pvr
- VK_KHR_present_id für panvk, v3dv
- VK_KHR_present_wait für panvk, v3dv
- VK_KHR_sampler_ycbcr_conversion für pvr
- VK_KHR_shader_integer_dot_product für pvr
- VK_KHR_shader_untyped_pointers für panvk
- VK_KHR_swapchain_mutable_format für panvk
- VK_QCOM_image_processing für Turnip
- VK_VALVE_mutable_descriptor_type für panvk
- VK_VALVE_shader_mixed_float_dot_product für RADV (Vega20, Navi14, RDNA2+)
- Implementierte OpenCL-Erweiterungen:
- cl_khr_subgroup_ballot für asahi, iris, llvmpipe, radeonsi und zink
- cl_xr_subgroup_clustered_reduce für asahi, llvmpipe, radeonsi und zink
- cl_khr_subgroup_extended_types für asahi, iris, llvmpipe, radeonsi und zink
- cl_khr_subgroup_non_uniform_arithmetic für asahi, llvmpipe, radeonsi und zink
- cl_khr_subgroup_non_uniform_vote für asahi, iris, llvmpipe, radeonsi und zink
- cl_khr_subgroup_rotate für asahi, llvmpipe und zink
- Der VirGL-Treiber, der eine virtuelle GPU für QEMU implementiert, wird nicht mehr weiterentwickelt und wird entfernt, sofern sich niemand findet, der die Wartung übernimmt.
Source: opennet.ru
