Nach drei Monaten Entwicklung wird die Version 26.1.0 der freien Implementierung der APIs OpenGL und Vulkan vorgestellt. Die erste Ausgabe der Reihe Mesa 26.1.0 hat den Status experimentell – nach der finalen Code-Stabilisierung wird die stabile Version 26.1.1 veröffentlicht.
In Mesa 26.1 wird Unterstützung für die Grafik-API Vulkan 1.4 in den Treibern ANV 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, im Software-Rasterizer lavapipe (lvp) und im Emulator-Modus (vn) bereitgestellt. In den v3dv-Treibern (Broadcom VideoCore GPU für Raspberry Pi 4+) und dzn (Vulkan-Implementierung über Direct3D 12) wird Vulkan 1.0 unterstützt, im Treiber kk (KosmicKrisp, Vulkan über Metal) – Vulkan 1.1, und im Treiber pvr (GPU Imagination PowerVR) – Vulkan 1.2.
Mesa bietet zudem vollständige Unterstützung für OpenGL 4.6 in den Treibern iris (Intel GPUs Gen 8+), radeonsi (AMD), Crocus (alte Intel GPUs Gen4-Gen7), AMD (r600), zink, llvmpipe, virgl (virtuelle GPU Virgil3D für QEMU/KVM), freedreno (Qualcomm Adreno), d3d12 (Schicht zur Nutzung von OpenGL über DirectX 12) und asahi (GPU AGX, die in den Apple M1 und M2 Chips verwendet wird). Die Unterstützung für OpenGL 4.5 ist für NVIDIA-GPUs (nvc0) verfügbar. Unterstützung für OpenGL 3.3 ist in den Treibern softpipe (Software-Rasterizer) und nv50 (NVIDIA NV50) vorhanden. In den Treibern panfrost (GPU ARM Mali) und v3d (GPU Broadcom VideoCore) wird OpenGL 3.1 unterstützt.
Hauptneuheiten:
- In die Treiber für Intel-GPUs (Iris, Crocus und ANV) wurde die Möglichkeit integriert, direkt mit dem GPU zu arbeiten, virtuellen Maschinen, indem native Kontexte (native context) in VirtIO-GPU verwendet werden. Native Kontexte ermöglichen eine Verbesserung der Leistung bei der Arbeit mit dem virtuellen GPU (virtio-gpu-gl) aus dem Gastsystem durch die direkte Übertragung von Befehlen an den realen Host-GPU.
- Für GPU PowerVR wurde Unterstützung für OpenGL ES 2.0 hinzugefügt, realisiert durch den Zink-Treiber, der hardwarebeschleunigtes OpenGL auf Geräten mit Vulkan-API ermöglicht.
- Für den OpenCL-Treiber rusticl ist nun eine statisch gebaute C++-Standardbibliothek erforderlich, um richtig mit Anwendungen zu arbeiten, die eine eigene C++-Standardbibliothek verwenden.
- Im radeonsi-Treiber (AMD) wurde Unterstützung für die OpenGL-Erweiterung GL_NV_timeline_semaphore hinzugefügt.
- Im panfrost-Treiber (ARM Mali) wurde Unterstützung für die OpenGL-Erweiterung GL_EXT_shader_image_load_store hinzugefügt.
- Im v3d-Treiber (Broadcom VideoCore) wurde Unterstützung für die OpenGL-Erweiterung GL_ARB_sample_shading hinzugefügt.
- Unterstützung für Vulkan-Erweiterungen wurde 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 (bei Festlegung von ‘export RADV_EXPERIMENTAL=heap’)
- 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_device_address_commands 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+)
- Realisiert OpenCL-Erweiterungen:
- cl_khr_subgroup_ballot für asahi, iris, llvmpipe, radeonsi und zink
- cl_khr_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 mit der Implementierung eines virtuellen GPU für QEMU wird nicht mehr unterstützt und wird entfernt, wenn sich niemand findet, der die Wartung übernimmt.
Quelle: opennet.ru
